How can you uniquely identify a user who has installed your app so that:
- You will know it is them if they delete and reinstall your app;
- You will know it is them if they install your app on a second device they intend to use simultaneously?
Just as an example, I see that the Netflix app will automatically link to your desktop account without any user interaction. I'm guessing that they use accountManager.getAccounts()
or similar method, because they also require the GET_ACCOUNTS
permission. But of course that permission is marked as Protection level: dangerous
. Is there any technique to do this that is less invasive or potentially alarming?
The key to answering this is to be both simple (for the user) and minimally invasive. Android provides heaps of ways to identify users and many of those ways involve piercing a user's privacy, and if that is the only way, I will do what I do now (optional email registration). I just want a way for my app to know if a user already is registered in my system across installs without having to interview the user (username/password, email address, third-party OAuth, etc).
My main reasons are:
- I don't want support requests from users who orphaned their content after a reinstall; and
- I don't want to host lots of orphaned content.