我需要在服务器上注册具有唯一标识符的用户设备,该唯一标识符为常量值,将来不会更改。Android - 唯一且恒定的设备ID
我无法找到一个很好的解决方案,从所有设备(有/无SIM卡)获取唯一的ID。
Secure.ANDROID_ID:Secure.ANDROID_ID不是唯一的,可以为空或在出厂重置时更改。
String m_androidId = Secure.getString(getContentResolver(), Secure.ANDROID_ID);
IMEI:IMEI是依赖于设备的simcard的插槽,所以它是不可能得到的IMEI对于不使用simcard的设备。
TelephonyManager tManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String uuid = tManager.getDeviceId();
WLAN MAC地址:如果设备不具备WiFi硬件,然后返回null MAC地址。用户可以更改设备的mac地址。
WifiManager m_wm = (WifiManager)getSystemService(Context.WIFI_SERVICE);
String m_wlanMacAdd = m_wm.getConnectionInfo().getMacAddress();
蓝牙地址字符串:如果设备有没有蓝牙硬件则返回null。
BluetoothAdapter m_BluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
String m_bluetoothAdd = m_BluetoothAdapter.getAddress();
Instance id:当用户卸载并重新安装应用程序实例ID将发生变化。这不是一个常数值。
您是否有任何想法从所有Android设备(带/不带SIM卡,蓝牙......)获取唯一的ID,这些ID真的是唯一的,不能为空,并且在卸载/重新安装应用后不会更改?
请注意,没有SIM卡和WiFi的平板电脑不能存在或远程使用。你有没有考虑过两者的组合? –
@STTLCU no。但用户可以更改设计的MAC地址。 –
@STTLCU我不确定你身边有哪些平板电脑,但几乎没有人知道平板电脑拥有SIM卡。 –