我需要一个ID,它对每个设备都是唯一的。此ID将存储在服务器中,并将用于标识设备。我正在考虑使用IMEI号码但我不想出于隐私原因将IMEI号码发送到服务器。
所以,我正在考虑这样做
- 获取IMEI号码。
- 使用SHA-1哈希IMEI号。
- 将此内容发送至服务器
醇>
这是否是获取唯一设备ID的可靠方式,而不涉及隐私问题?请指教。
答案 0 :(得分:1)
使用以下
获取IMEI号码 String identifier = null;
TelephonyManager tm = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
if (tm != null)
identifier = tm.getDeviceId();
if (identifier == null || identifier .length() == 0)
identifier = Secure.getString(activity.getContentResolver(),Secure.ANDROID_ID);
并添加此权限:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
答案 1 :(得分:0)
您可以使用ANDROID_ID但在某些设备中它是一个错误,它似乎返回相同的ID。检查相同https://groups.google.com/forum/#!topic/android-developers/U4mOUI-rRPY的参考。作为后退,我做了以下几点:
String deviceId = Secure.getString(ActivationActivity.this.getContentResolver(), Secure.ANDROID_ID);
if ("9774d56d682e549c".equals(deviceId)) {
deviceId= UUID.randomUUID().toString();
}