0

我正在为混淆信息生成一个密钥。

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

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

但是测试我意识到,由于TelephonyManager.getSimSerialNumber()会随着设备中的 SIM 卡而变化(并且在飞行模式下总是返回 null),因此密钥也会发生变化,并且无法恢复混淆的数据。

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

注意:我测试过,即使在“飞行模式”下它也会为我返回一个有效值

4

1 回答 1

1

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

于 2013-02-14T17:12:54.927 回答