天天看點

淺談移動端裝置辨別碼:DeviceID、IMEI、IDFA、UDID和UUID

UDID是移動端相對最靠譜的裝置辨別碼,不論Android或iOS。

【名詞釋義】

  • Device ID:裝置ID。
  • IMEI:International Mobile Equipment Identity,國際移動裝置身份碼的縮寫。是由15位數字組成的“電子串号”,它與每台手機一一對應,每個IMEI在世界上都是唯一的。
  • IDFA:Identifier For Advertising,iOS獨有的廣告辨別符。
  • UDID:Unique Device Identifier,唯一裝置辨別碼。
  • UUID:Universally Unique Identifier,通用唯一識别碼。目前最廣泛應用的UUID,是微軟公司的全局唯一辨別符GUID。其目的是讓分布式系統中的所有元素,都能有唯一的辨識資訊,而不需要通過中央控制端來做辨識資訊的指定。

【再說過程】

名詞釋義是不是看得一臉懵逼?莫慌,下圖介紹了各個裝置辨別碼的差別,以及目前的情況。

淺談移動端裝置辨別碼:DeviceID、IMEI、IDFA、UDID和UUID

點選圖檔檢視清晰大圖

Android裝置辨別碼

  1. device ID。

    又叫裝置ID。可以用系統提供的TelephonyManager服務來擷取,具有唯一性。其中又包括IMEI和MEID/ESN。

  2. IMEI:GSM裝置傳回的,并且是寫在主機闆上的,重裝APP不會改變IMEI。Android 6.0以上系統需要使用者授予read_phone_state權限,如果使用者拒絕就無法獲得。
  3. mac位址:硬體辨別符,包括WiFi mac位址和藍牙mac位址。Android 6.0之後被禁止,若擷取則會被判定為有害應用。
  4. MEID/ESN:CDMA裝置傳回的,一般不使用。
  5. UDID:用來标示裝置的唯一性。擷取UUID後,寫入.so檔案生成UDID。即使APP重裝,值也不變,除非root手機(普通使用者做不到)
  6. UUID:APP重裝後會改變。

iOS裝置辨別碼

  1. device ID。
  2. IMEI:iOS 5 之後被禁止。寫在主機闆上,重裝APP不會改變。
  3. IDFA:于iOS 6 時面世,可以監控廣告效果,同時保證使用者裝置不被APP追蹤的折中方案。可能發生變化,如系統重置、在設定裡還原廣告辨別符。使用者可以在設定裡打開“限制廣告跟蹤”。
  4. mac位址:硬體辨別符,包括WiFi mac位址和藍牙mac位址。iOS 7 之後被禁止(同時禁止的還有OpenUDID)。
  5. UDID:用來标示裝置的唯一性 。iOS 6 之後被禁止擷取系統原生的UDID,但可以通過uuid,寫入到鑰匙串中,進而獲得自定義的UDID(非系統原生),即使使用者重裝APP,隻要每次都取這個鑰匙串傳回,就是不變的。
  6. UUID:APP重裝後會改變。

【總結】

若想用于資料統計,使用UDID是最靠譜的。

原文連結:https://www.jianshu.com/p/38f4d1a4763b

繼續閱讀