Java 在android中获取唯一的设备ID

Java 在android中获取唯一的设备ID,java,android,Java,Android,我想知道如何获得一个字符串来唯一地标识android中当前的设备。 我知道以前有人问过这个问题,但所有的答案都是一样的:使用ANDROID_ID常量。问题是它已被弃用,而且不安全。还有其他可能性吗 谢谢。没有理想的方法。最好的方法是自己生成一个,然后重复使用,直到安装应用程序为止。你可以用 String uniqueId = UUID.randomUUID().toString(); 在应用程序首次启动时生成它,并将其保存在您的共享首选项中以供进一步使用。。每次新安装后,这种情况都会发生变

我想知道如何获得一个字符串来唯一地标识android中当前的设备。 我知道以前有人问过这个问题,但所有的答案都是一样的:使用ANDROID_ID常量。问题是它已被弃用,而且不安全。还有其他可能性吗


谢谢。

没有理想的方法。最好的方法是自己生成一个,然后重复使用,直到安装应用程序为止。你可以用

 String uniqueId = UUID.randomUUID().toString(); 

在应用程序首次启动时生成它,并将其保存在您的共享首选项中以供进一步使用。。每次新安装后,这种情况都会发生变化,因此您也可以跟踪应用程序的安装情况。

请参阅以下文章,其中介绍了几种检索唯一ID以识别Android设备的方法

有关唯一标识符,请参考Android开发者最佳实践 了解哪些是推荐的,哪些不是


在哪种环境/语言中?它似乎不受欢迎。。。你需要考虑你是否想要一个唯一且永远与该硬件绑定的ID;2) 通过出厂重置重置的ID(这样您就可以将手机卖给他人而不必向他们出售您的身份;3)与手机计划绑定的ID,这样您就可以交换SIM卡并作为新人与新运营商互动。4) 与特定应用程序的特定安装关联的ID。5) 等等,“指出您想要ID的原因非常重要。是否希望在重新安装应用程序后保持该状态?工厂重置怎么办?或者你可能两者都不关心?
UUID.randomUUID()
没有给出唯一的id。它每次都给出随机值。完全正确,因此在第一次打开应用程序时生成。我在realm数据库中使用了相同的主键。但我不认为将其作为唯一的设备id使用是明智的。因为在卸载和重新安装应用程序后无法获取该id。因此,它不能作为唯一的设备id工作。@SagarChapagain通常跟踪用户的设备在大多数情况下是理想情况下不必要的。加上它已经在iOS中侵犯了隐私,应用程序将被拒绝,甚至安卓也正在朝着这一方向发展,因此可能不会成为未来的证据。如果它不依赖指向外部网站的链接,这将是一个很好的答案,而这些链接在未来可能无效。考虑引用你链接到的页面的一些内容,即使页面链接也会腐烂,这个页面仍然是有效的。“DaleWilson谢谢你的建议,我真的想在这里进行真正的演讲,但是有很多方式和很多视角来描述,我认为开发者。Android链接永远不会失效,所以就是这样。