【Android系統更新--- Android10-getDeviceId返回null---DeviceId---AndroidID】

用意

  • 保護用戶隱私
  • 限制第三方APP 訪問到超出 APP使用期間的數據(device id、meid等)
  • 導致10之後DeviceID不可用,推薦使用AndroidID

Android 10系統

針對un-resetable(刷機都不會重置 的id數據) 數據讀取,新增限制。
影響的方法

  • Build
    • getSerial()
  • TelephonyManager
    • getImei()
    • getDeviceId()
    • getMeid()
    • getSimSerialNumber()
    • getSubscriberId()

DeviceId

需要權限

  • READ_PHONE_STATE
  • READ_PRIVILEGED_PHONE_STATE
    • 新增權限
    • 在GooglePlay中不允許第三方應用持有。

app target >= Android 10(29)

拋出異常 SecurityException

app target < Android 10

  1. READ_PHONE_STATE權限,return null
  2. READ_PHONE_STATE權限, 拋出異常 SecurityException

官方推薦可行的解決方案

String uniqueID = UUID.randomUUID().toString();

其他和google的廣告、推送相關,不可用

AndroidId

系統 >= Android 8.0

  • 64bit數(用十六進制表示)
  • 與app-signing key, user, and device(相當於主鍵) 唯一綁定
  • 變更: 恢復出廠設置,或開發者更改 簽名key,還有user切換

系統升級至Android 8.0 (API level 26)

AndroidID會發生變化

Android 8.0之前

  • 設備第一次啓動時,隨機生成
  • 在之後保持不變
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章