我需要生成符合以下条件的设备ID:
它是普遍独特的。 它是一致的(尽可能多),即它对同一设备保持不变。 它需要最少的权限。 转移和存储是合法的。 例如,解决方案可以是一个硬件ID,可以在没有特殊权限的情况下访问,然后通过线路进行哈希和发送,我只是不知道是否有任何权限。
P.S。设备不得植根,我不想在任何类型的钥匙链或其他任何地方存储任何东西。只需动态生成,并保持相同,独立于生成的应用程序。在工厂重置或其他罕见情况下重置它是可以的。
答案 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"/>