Android设备的唯一ID

时间:2013-07-03 10:11:12

标签: android sha imei

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

所以,我正在考虑这样做

  
      
  1. 获取IMEI号码。
  2.   
  3. 使用SHA-1哈希IMEI号。
  4.   
  5. 将此内容发送至服务器
  6.   

这是否是获取唯一设备ID的可靠方式,而不涉及隐私问题?请指教。

2 个答案:

答案 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(); 
                                      }