2013-02-14 31 views
0

我正在生成混淆信息的密钥。TelephonyManager.getDeviceId()返回一个常量值?

即密钥必须设备之间,以便用于产生我使用改变:

  • Secure.getString(getContentResolver(), Secure.ANDROID_ID)
  • TelephonyManager.getSimSerialNumber()
  • TelephonyManager.getDeviceId()
  • 生成的随机持续字符串如果所有上述选项是null

但是te我意识到自从TelephonyManager.getSimSerialNumber()随着设备中的SIM而改变(并且在飞行模式下总是返回空值),密钥也改变并且混淆的数据不能被恢复。

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

注:我测试,对我来说,即使在“飞行模式”

+0

[查看此问题](http://stackoverflow.com/questions/2785485/is-there-a-unique-android-device-id)了解与唯一ID相关的信息。请注意,当设备出厂重置时,您所拉的ID也可能会发生变化。 – FoamyGuy 2013-02-14 17:12:43

回答

1

返回一个有效的值假设有问题的设备是植根(因为它允许用户更改最独特的琴弦)TelephonyManager.getDeviceId()应返回GSM网络上的IMEI号码 - 这与手机链接而非SIM,因此它不会更改。

+3

扎根设备用户可能可以更改此值,而备用ROM可能允许用户更改此值。 – CommonsWare 2013-02-14 17:13:29