Unfortunately, there is nothing that fits your requirements.
When it comes to the unique identifiers of an Android device, there are a lot of different options, but none of them is a 100% guarantee to work. And, getting most of them require requesting nasty permissions from the user.
I can suggest two options:
- Using the Google Advertising ID - it's unique per device and will only change if the user manually resets it. There are no additional permissions required to extract it.
- You can generate a unique key per device yourself (using something like a UUID) and store it on the device (shared prefs, file, database...).