如何在Android设备上获取唯一且一致的设备ID

时间:2016-09-01 10:58:31

标签: android security encryption

我需要生成符合以下条件的设备ID:

它是普遍独特的。 它是一致的(尽可能多),即它对同一设备保持不变。 它需要最少的权限。 转移和存储是合法的。 例如,解决方案可以是一个硬件ID,可以在没有特殊权限的情况下访问,然后通过线路进行哈希和发送,我只是不知道是否有任何权限。

P.S。设备不得植根,我不想在任何类型的钥匙链或其他任何地方存储任何东西。只需动态生成,并保持相同,独立于生成的应用程序。在工厂重置或其他罕见情况下重置它是可以的。

1 个答案:

答案 0 :(得分: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"/>