谁能告诉我,我所使用的代码是否是获取唯一id的正确方式?我怀疑我可能被骗了,这可能会在我公司的管理层面上造成问题……
final TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
String UDID = tm.getDeviceId();发布于 2012-10-06 05:21:18
这是调用getDeviceId()的正确方式。这可能不是唯一的标识符,因为并不是所有的设备都是手机,而且一些手机有bug。有关更多详细信息,请参阅this Android Developers Blog post。
发布于 2012-10-06 08:15:41
如果你想要一个唯一的android标识符,你会看到有很多问题,你可以通过一个简单的谷歌搜索来解决。类似于CommonsWare提到的内容。
但是,您仍然可以获得唯一的标识符。真正的问题是你想要识别什么。是用户还是设备?
如果您想要识别特定用户:
你想要IMSI值。
final TelephonyManager tm = (TelephonyManager)context`.getSystemService(Context.TELEPHONY_SERVICE);
String UDID = tm.getSubscriberId()如果要标识硬件,则需要IMEI值:
final TelephonyManager tm = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
String UDID = tm.getDeviceId()现在:我建议使用getDeviceID()选项,因为它对隐私的影响较小。
但您可以进一步执行步骤事件,并在存储该值之前对其进行散列。
但是,如果您不能获得正确的返回值,您总是可以做一些事情,比如让用户输入他们的电话号码,并通过sms进行验证。然后使用它作为标识符。
https://stackoverflow.com/questions/12754181
复制相似问题