TelephonyManager.getDeviceId()返回一个常量值?

时间:2013-02-14 17:08:47

标签: java android

我正在生成混淆信息的密钥。

该密钥必须在设备之间进行更改,因此对于我正在使用的代:

  • Secure.getString(getContentResolver(), Secure.ANDROID_ID)
  • TelephonyManager.getSimSerialNumber()
  • TelephonyManager.getDeviceId()
  • 如果上述所有选项均为null
  • ,则会生成随机持久性字符串

但测试我意识到,由于 TelephonyManager.getSimSerialNumber()随设备中的SIM发生变化(并且在飞行模式下始终返回null),密钥也会发生变化,并且无法恢复模糊处理的数据。 / p>

我的问题是: TelephonyManager.getDeviceId()是否始终返回相同的值(null或值,但结果总是相同)?

注意:我测试了它,即使在“飞行模式”

中它也会为我返回一个有效值

1 个答案:

答案 0 :(得分:1)

假设有问题的设备 rooted(因为它允许用户更改设备的大多数唯一字符串)TelephonyManager.getDeviceId()应返回GSM网络上的IMEI号码 - 这与手机而非SIM相关联,因此不会改变。