1

我需要一个对每个设备都是唯一的 ID。此 ID 将存储在服务器中,并将用于识别设备。我正在考虑使用 IMEI 号码,但出于隐私原因,我不想将 IMEI 号码发送到服务器。

所以,我正在考虑这样做

  1. 获取 IMEI 号码。
  2. 使用 SHA-1 散列 IMEI 号码。
  3. 将此发送到服务器

这是在没有隐私问题的情况下获得唯一设备 ID 的可靠方法吗?请指教。

4

2 回答 2

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" />
于 2013-07-03T10:21:18.643 回答
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(); 
                                      }
于 2013-07-03T10:20:21.933 回答