首页 > 解决方案 > 如何在android java中获取设备唯一ID?作为 2020 年的 Google 法律

问题描述

我已经阅读了文档,并且知道 IMEI、Android ID、SECURE ID 等现在有限制。然后我在我的应用程序中使用 UUID 作为唯一 ID,但问题是在清除存储或数据时,存储在 sharedpreferences 中的 UUID 也被删除并获得不同的 UUID。请帮助我并建议我获取 android 唯一设备 ID。

标签: javaandroid

解决方案


在设备首次启动时,会生成并存储一个随机值。该值可通过 Settings.Secure.ANDROID_ID 获得。它是一个 64 位数字,在设备的整个生命周期内应该保持不变。ANDROID_ID 似乎是唯一设备标识符的不错选择,因为它可用于智能手机和平板电脑。要检索该值,您可以使用以下命令

 import android.provider.Settings.Secure;
 private String android_id = Secure.getString(getContext().getContentResolver(),Secure.ANDROID_ID);



//Secure ID V 10
 val secureId = Secure.getString(getContentResolver(), Secure.ANDROID_ID)


//UUID
    private static String uniqueID = null;
    private static final String PREF_UNIQUE_ID = "PREF_UNIQUE_ID";public synchronized static String id(Context context) {
       if (uniqueID == null) {
          SharedPreferences sharedPrefs = context.getSharedPreferences(
             PREF_UNIQUE_ID, Context.MODE_PRIVATE);
          uniqueID = sharedPrefs.getString(PREF_UNIQUE_ID, null);    

       if (uniqueID == null) {
             uniqueID = UUID.randomUUID().toString();
             Editor editor = sharedPrefs.edit();
             editor.putString(PREF_UNIQUE_ID, uniqueID);
             editor.commit();
          }
       }   
       return uniqueID;
    }

推荐阅读