Package 

Class DeviceID

  • All Implemented Interfaces:
    com.github.gzuliyujiang.oaid.IGetter

    
    public final class DeviceID
     implements IGetter
                        

    设备标识符工具类,建议使用DeviceIdentifier代替

    • Method Summary

      Modifier and Type Method Description
      static String getClientId() 使用该方法获取客户端唯一标识,需要先在Application里调用register预取
      static String getOAID() 使用该方法获取OAID,需要先在onCreate里调用register预取
      static void getOAID(Context context, IGetter getter) 异步获取OAID,如果使用该方法获取OAID,请不要调用register进行预取
      static void register(Application application) 在应用启动时预取客户端标识及OAID,客户端标识按优先级尝试获取IMEI/MEID、OAID、AndroidID、GUID。!!注意!!
      static void register(Application application, IRegisterCallback callback) 在应用启动时预取客户端标识及OAID,客户端标识按优先级尝试获取IMEI/MEID、OAID、AndroidID、GUID。!!注意!!
      static String getClientIdMD5() 获取预取的客户端唯一标识的MD5值
      static String getClientIdSHA1() 获取预取的客户端唯一标识的SHA-1值
      static boolean supportedOAID(Context context) 判断设备是否支持 OAID 或 AAID 。大多数国产系统需要 Android 10+ 才支持获取 OAID,需要安卓 Google Play Services 才能获取 AAID。
      static String getUniqueID(Context context) 获取唯一设备标识。Android 6.0-9.
      static String getAndroidID(Context context) 获取AndroidID
      static String getWidevineID() 获取数字版权管理设备ID
      static String getPseudoID() 通过取出ROM版本、制造商、CPU型号以及其他硬件信息来伪造设备标识
      static String getGUID(Context context) 随机生成全局唯一标识并存到{@code SharedPreferences}{@code ExternalStorage}{@code SystemSettings}。为保障在Android10以下版本上的稳定性,需要加入权限{@code WRITE_EXTERNAL_STORAGE}{@code WRITE_SETTINGS}
          
          
      
      static String calculateHash(String str, String algorithm) 计算哈希值,算法可以是MD2、MD5、SHA-1、SHA-224、SHA-256、SHA-512等,支持的算法见https://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.
      void onOAIDGetComplete(String result) 成功获取到OAID
      void onOAIDGetError(Exception error) OAID获取失败(不正常或获取不到)
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • getClientId

         static String getClientId()

        使用该方法获取客户端唯一标识,需要先在Application里调用register预取

      • getOAID

         static String getOAID()

        使用该方法获取OAID,需要先在onCreate里调用register预取

      • getOAID

         static void getOAID(Context context, IGetter getter)

        异步获取OAID,如果使用该方法获取OAID,请不要调用register进行预取

        Parameters:
        context - 上下文
        getter - 回调
      • register

         static void register(Application application)

        在应用启动时预取客户端标识及OAID,客户端标识按优先级尝试获取IMEI/MEID、OAID、AndroidID、GUID。!!注意!!:若最终用户未同意隐私政策,或者不需要用到getClientIdgetOAID,请不要调用这个方法

        Parameters:
        application - 全局上下文
      • register

         static void register(Application application, IRegisterCallback callback)

        在应用启动时预取客户端标识及OAID,客户端标识按优先级尝试获取IMEI/MEID、OAID、AndroidID、GUID。!!注意!!:若最终用户未同意隐私政策,或者不需要用到getClientIdgetOAID,请不要调用这个方法

        Parameters:
        application - 全局上下文
        callback - 注册完成回调
      • supportedOAID

         static boolean supportedOAID(Context context)

        判断设备是否支持 OAID 或 AAID 。大多数国产系统需要 Android 10+ 才支持获取 OAID,需要安卓 Google Play Services 才能获取 AAID。

        Parameters:
        context - 上下文
      • getUniqueID

         static String getUniqueID(Context context)

        获取唯一设备标识。Android 6.0-9.0 需要申请电话权限才能获取 IMEI,Android 10+ 非系统应用则不再允许获取 IMEI。

            
        
        Parameters:
        context - 上下文
      • getAndroidID

         static String getAndroidID(Context context)

        获取AndroidID

        Parameters:
        context - 上下文
      • getPseudoID

         static String getPseudoID()

        通过取出ROM版本、制造商、CPU型号以及其他硬件信息来伪造设备标识

      • getGUID

         static String getGUID(Context context)

        随机生成全局唯一标识并存到{@code SharedPreferences}{@code ExternalStorage}{@code SystemSettings}。为保障在Android10以下版本上的稳定性,需要加入权限{@code WRITE_EXTERNAL_STORAGE}{@code WRITE_SETTINGS}

            
            
        
      • calculateHash

         static String calculateHash(String str, String algorithm)

        计算哈希值,算法可以是MD2、MD5、SHA-1、SHA-224、SHA-256、SHA-512等,支持的算法见https://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html#MessageDigest

      • onOAIDGetError

         void onOAIDGetError(Exception error)

        OAID获取失败(不正常或获取不到)

        Parameters:
        error - 异常信息