Android识别独特设备

时间:2015-08-03 13:13:00

标签: java android

我有一个应用程序,方案是第一次访问应用程序需要密码。现在当有人使用密码而不是密码时,只有在他们卸载应用程序或其他东西时再次使用该密码,就像在Windows上安装了唯一密钥的任何软件一样。

我正在使用设备ID,如

TelephonyManager manager=(TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
 String deviceid=manager.getDeviceId();

但我收到的一些用户投诉是,当他们更换SIM卡或其他任何内容时,它会再次要求输入密码而旧密码不起作用。我尝试测试它,事实证明,在大多数设备上,设备ID随着sim的变化而变化。我之前没有做太多的研究,但是现在我已经阅读了大部分的问题,而且当我们出厂重置手机时,这个ID似乎也会改变。现在有人能告诉我什么是获得唯一识别Android设备的最佳方法吗?

是的,它是Is there a unique Android device ID?的副本但是这并没有像Joe使用设备ID那样提供给我一个asnwer我告诉你使用设备ID有什么问题,它随着更改而变化SIM卡。

谢谢

2 个答案:

答案 0 :(得分:0)

检查这个

String uniqueId=Secure.getString(getContentResolver(),Secure.ANDROID_ID);

答案 1 :(得分:0)

从描述问题的方式来看,您实际上不需要唯一地识别设备。您的要求似乎表明您只需要唯一标识安装,因为您提到他们可以在卸载应用时再次使用相同的密码。

Android Developers blog post探讨了深入识别设备和安装的主题,并提供了识别安装而非设备的解决方案。

您真正需要做的就是使用UUID.randomUUID()生成安装ID并在某处保留该ID。当您的用户卸载该应用时,该ID将被删除,如果他们回来,您可以创建一个新ID。