Android独有的UDID

时间:2012-10-05 21:19:00

标签: android uniqueidentifier udid

有人能告诉我,我一直在使用的代码是否是获取唯一ID的正确方法?我怀疑我可能有欺骗行为,这可能会导致我公司的行政级别出现问题......

final TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
String UDID = tm.getDeviceId();

2 个答案:

答案 0 :(得分:4)

这是拨打getDeviceId()的正确方法。这可能不是唯一的标识符,因为并非所有设备都是电话,而某些电话有错误。有关详细信息,请参阅this Android Developers Blog post

答案 1 :(得分:0)

如果你想为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()选项,因为它具有较少的隐私含义。

但是你可以进一步采取步骤事件并在存储它之前散列该值。

但是,如果您无法获得正确的返回值,您可以随时执行某些操作,例如让用户输入他们的电话号码,并通过短信进行验证。然后将其用作标识符。