2016-09-01 79 views
2

我需要生成符合以下條件的設備ID:如何在Android設備上獲取唯一且一致的設備ID

它是普遍獨特的。 它是一致的(儘可能多),即對同一設備保持不變。 它需要最小的權限。 傳輸和存儲是合法的。 例如,這個解決方案可能是一個硬件ID,它可以在沒有特殊權限的情況下進行訪問,然後通過電線進行散列和發送,我只是不知道是否有。


P.S.設備不能紮根,我不想在任何類型的鑰匙鏈或其他任何地方存儲任何東西。只需立即生成,並保持不變,獨立於正在生成的應用程序。並在出廠重置或其他罕見的場合重置它很好。

+0

imei號碼應該是唯一的設備 – dex

+0

儘管使用實例ID:https://developers.google.com/instance-id/ –

+0

多一個選項:'String imsi = android.os.SystemProperties.get( android.telephony.TelephonyProperties.PROPERTY_IMSI);' –

回答

0
private String getIMEINumber() { 
    TelephonyManager mngr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
    return mngr.getDeviceId(); 

} 

而且在清單文件:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 

IMEI是每個器件唯一

或者你可以得到MAC地址:

WifiManager wifiManager (WifiManager)getSystemService(Context.WIFI_SERVICE); 
WifiInfo wInfo = wifiManager.getConnectionInfo(); 
String macid = wInfo.getMacAddress(); 

不要忘記添加許可:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 
+0

但它可以在默認情況下,單臺設備 –

+0

多會將第一個如果多個可用和其他人都無法訪問 –