For the longest time I have been trying to have a unique identifier that the software is not only locked to the user but device.
The problem with Googles system is that if users are willing to share user id (
example: [not real email] AllOfUs@GMail.com) and password.
Multiple people on multiple devices can share the software.
In my case that is a real problem. My average user cost (subscriptions) is around $80 - $100 a year.
Now that sounds like a lot. But my users run Brackets in there bowling League using my software.
In a league of 20 teams the user would run 20-30 brackets on any given league night, now most are running brackets / sidepots in more than 1 league a week.
They make usually $5 per bracket (thats $100 or more a night) so they make their money back usually in 1 night if not 2 league nights.
I've had users share their DBs to debug a problem and I could see how much they take in and pay out (some are making over $200 per league night and there are around 36 league nights not counting summer leagues, weekend tournaments...
So if they share the software on multiple devices with friends, really hurts my bottom line (cause all I get are the yearly subscription fees - which is fine by me).
I guess I am kind of guilty of the same thing. My wife and I have a common Email that is always our first google account this way when we go to google calendar anything we schedule shows up on that account. We have a old ViewSonic monitor that runs a old version of Android on the Wall (Kind of like the calendars people use to put to schedule events for the family) All this monitor does is run Google Calendar so we can do the same thing a Paper device did (but also have it with us on our phones).
To me you should only be able to run your subscriptions ONLY on the device you purchased them on.
If you want to move to another device. Find, but the old device should stop supporting them (no subscriptions running on multiple devices).
Why Google doesn't close this hole in their design (would generate more subscription fees for them) is beyond me
I let my users move from device to device for a small fee of $3.00 (just because there is always seems to be a problem [98% usually their end])
Use to use Android ID, AD_ID (now going away), and now have added
WiFi ID something has to match. Spend more time on this then I would like.
There is no easy solution because whenever a user resets their device Android ID can change
If you come up with something new to make the software locked to a device please share it.
BobVal
PS: Forgot to say, right now I use Firebase Storage and when I user purchases a device license I upload all the information I can that I think is Unique and when my software loads I go to firebase and get this information (something needs to be the same to be valid - Android ID, WiFi ID, etc