0

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

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

2 回答 2

4

这是正确的调用方式getDeviceId()。这可能不是唯一标识符,因为并非所有设备都是手机,有些手机有错误。有关更多详细信息,请参阅此 Android 开发者博客文章

于 2012-10-05T21:21:17.603 回答
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() 选项,因为它对隐私的影响较小。

但是您可以进一步采取步骤事件并在存储之前对该值进行哈希处理。

但是,如果您无法获得正确的返回值,您总是可以做一些事情,比如让用户输入他们的电话号码,并通过短信验证它。然后将其用作标识符。

于 2012-10-06T00:15:40.863 回答