2013-02-14 91 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