2017-07-26 73 views
0

我想知道如何获取一个字符串,它唯一标识了android中的当前设备。 我知道这已经被问过,但所有的答案都是一样的:使用ANDROID_ID常量。问题是它已被弃用,也不安全。还有其他的可能吗?在android中获取唯一的设备ID

谢谢。

+0

在哪个环境/语言? – nageeb

+1

它似乎不被弃用... https://developer.android.com/reference/android/provider/Settings.Secure.html#ANDROID_ID – litelite

+2

你需要考虑你是否想要1)一个唯一的和永远绑定的ID那个特定的硬件; 2)通过出厂重置重置的ID(这样您就可以将手机卖给某人而不会出售您的身份; 3)与您的手机计划绑定的ID,以便您可以交换SIM卡并与新运营商互动为新人。 4)与特定应用的特定安装相关联的ID。 5)等“ –

回答

1

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

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

生成它的第一次应用程序启动,并将其保存为进一步使用共享的偏好。这将每一个新的安装后更改,因此你可以跟踪应用的安装为好。

+0

'UUID.randomUUID()'不提供唯一的ID。它每次都会给出随机值。 –

+0

准确且因此在应用程序首次开放时生成。 –

+0

我在领域数据库中使用了相同的主键。但我不认为将它作为唯一的设备ID是明智的。由于在卸载并重新安装应用程序后无法获取它。所以它不能用作唯一的设备ID。 –

0

参见下面的帖子里面描述了几种方法来获取一个唯一的ID来标识Android设备..

https://medium.com/@ssaurel/how-to-retrieve-an-unique-id-to-identify-android-devices-c40080e04fa4

,并参考Android开发最佳实践的唯一标识符 知道哪些建议和哪些不是..

https://developer.android.com/training/articles/user-data-ids.html

+1

如果不依赖于未来可能无效的外部网站链接,这将是一个很好的答案。考虑引用您链接的页面的一些内容,这样即使链接衰败,该页面仍然有效。 –

+0

@DaleWilson谢谢戴尔的建议,我真的想在这里发表真实的演讲,但有很多方法和很多观点来描述,我认为developer.android链接永远不会失效,所以就是这样。 – Shareefoo