1. 程式人生 > >android獲取裝置唯一標識

android獲取裝置唯一標識

IMEI

百度百科解釋:IMEI(International Mobile Equipment Identity)是國際移動裝置身份碼的縮寫,國際移動裝備辨識碼,是由15位數字組成的“電子串號”,它與每臺行動電話機一一對應,而且該碼是全世界唯一的。每一隻行動電話機在組裝完成後都將被賦予一個全球唯一的一組號碼,這個號碼從生產到交付使用都將被製造生產的廠商所記錄。

它有3個缺點:

  1. 需要android.permission.READ_PHONE_STATE許可權,它在6.0+系統中是需要動態申請的。如果需求要求App啟動時上報裝置識別符號的話,那麼第一會影響初始化速度,第二還有可能被使用者拒絕授權。

  2. android系統碎片化嚴重,有的手機可能拿不到DeviceId,會返回null或者000000。

  3. 這個方法是隻對有電話功能的裝置有效的,在pad上不起作用。

這次是pad專案,所以這個方法不適用。

ANDROID_ID

ANDROID_ID是裝置第一次啟動時產生和儲存的64bit的一個隨機數,不需要許可權,pad通用,但是當裝置恢復出廠模式後會被重置。

WIFI_MAC

基本上的Android裝置都配備WLAN,可以通過WLAN地址來作為裝置碼,同理,也需要加入android.permission.ACCESS_WIFI_STATE 許可權,否則返回null。在Android 6.0以後,系統做出許多重大的變化,官方是這麼描述的:為了給使用者更多的資料保護,從這個版本開始, Android 移除了通過 WiFi 和藍芽 API 來在應用程式中可程式設計的訪問本地硬體標示符。現在 WifiInfo.getMacAddress() 和 BluetoothAdapter.getAddress() 方法都將返回 02:00:00:00:00:00 。在新的版本當中要用其它的方法才行。