安卓手机的唯一标识符

6

我正在开发一个需要通过某个唯一的数字/字符串来识别设备的Android应用程序。

我听说过ANDROID_ID,但也有报道称它在某些手机型号或甚至更新后可能是相同的。另一件事是,在工厂重置或系统重新安装后,它会被重新创建。虽然我可以接受这一点,但我更希望它保持不变。

是否有其他方法可以在不请求更多权限的情况下识别手机?IMEI需要它们(android.permission.READ_PHONE_STATE),但可能会吓跑用户。

Shazam是如何做到的?我知道它能永久地识别手机(即使我完全重新安装了系统,它也记得我以前是一个用户),但是它是怎么做到的呢?

1个回答

0
为什么不在一个众所周知的位置创建一个文件GUID,并将其作为您的唯一标识符?这样,您就可以完全控制,而无需任何提升的权限(除了文件系统访问)。

你如何在不基于常量(例如设备ID)的算法的情况下,在软件重新安装时保留生成的ID? - Error 454
@错误:软件安装程序必须足够智能,如果GUID文件已经存在,则不会重置它。 - Paul Sasik
1
我曾经考虑过这个问题,但使用它几乎与使用ANDROID_ID相同(尽管它可以解决某些设备上相同ID的问题)。坏处是,在完整系统重新安装或恢复出厂设置后,它将消失。我想我有两个选择 - 为当前系统安装创建标识符或使用提升权限的设备ID。 - Leonti
@Leonti:我有一个想法:您一定考虑过这种情况,即最终用户丢失手机并获得新手机…还有一个新的ID。全面重置/重新安装不就是这种情况吗?这意味着,如果您解决了一个问题,就解决了另一个问题。用户会丢失手机,他们也会重置手机。在我看来,重置=丢失和获取新手机。 - Paul Sasik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接