是否存在安装应用程序时唯一可用的 ID?
我的意思是跨设备唯一,所以如果同一个应用程序安装在 10 个不同的设备上,那么就会有 10 个不同的 id。 并且同一设备上的两个不同应用程序必须提供两个不同的 ID。
需要在应用程序更新后保持不变,如果您卸载并重新安装应用程序,最好会发生变化。
出于安全原因,我不想生成 UUID 并将其写入应用程序私有存储中的文件。
我的解决方案是使用 Android SharedPreferencesBackupHelper 类和 BackupAgentHelper。 无需将您的 UUID 存储在应用程序私有存储的文件中(尽管我不确定您的安全限制是什么,因此使用 SharedPreferences 数据库可能不会更好)。 该解决方案允许您拥有设备/安装唯一的 ID,并且它将在应用程序卸载和安装后继续存在(我通常认为这是一件好事)。 如果您让您的应用程序在运行时确定它是否已重新安装,那么该应用程序可以在那时生成一个新的 UUID。
执行此操作的一种方法是在应用程序的已安装资源包中查找属于 .apk 一部分的指示器文件。 如果应用程序看到此文件,则它是新安装:生成/存储 UUID,然后删除该文件(或更改其内容)。 后续执行会发现这一点并意识到这不是新安装。
这满足您的需求吗?
Google 提供广告 ID 作为所有设备/用户的唯一标识符,并适用于所有 Google Play 设备 API 9 或更高版本。
还有许多其他机制,例如使用 Settings.SECURE.ANDROID_ID,如此(预广告 ID)博客文章中详述。请注意
ANDROID_ID
上博客文章的评论:
也有缺点:首先,它在 2.2 之前的 Android 版本(“Froyo”)上并不是 100% 可靠。此外,一家主要制造商的一款流行手机中至少存在一个广泛观察到的错误,其中每个实例都具有相同的 ANDROID_ID。