-
- All Implemented Interfaces:
-
com.github.gzuliyujiang.oaid.IGetter
public final class DeviceID implements IGetter
设备标识符工具类,建议使用DeviceIdentifier代替
-
-
Method Summary
Modifier and Type Method Description static StringgetClientId()使用该方法获取客户端唯一标识,需要先在Application里调用register预取 static StringgetOAID()使用该方法获取OAID,需要先在onCreate里调用register预取 static voidgetOAID(Context context, IGetter getter)异步获取OAID,如果使用该方法获取OAID,请不要调用register进行预取 static voidregister(Application application)在应用启动时预取客户端标识及OAID,客户端标识按优先级尝试获取IMEI/MEID、OAID、AndroidID、GUID。!!注意!! static voidregister(Application application, IRegisterCallback callback)在应用启动时预取客户端标识及OAID,客户端标识按优先级尝试获取IMEI/MEID、OAID、AndroidID、GUID。!!注意!! static StringgetClientIdMD5()获取预取的客户端唯一标识的MD5值 static StringgetClientIdSHA1()获取预取的客户端唯一标识的SHA-1值 static booleansupportedOAID(Context context)判断设备是否支持 OAID 或 AAID 。大多数国产系统需要 Android 10+ 才支持获取 OAID,需要安卓 Google Play Services 才能获取 AAID。 static StringgetUniqueID(Context context)获取唯一设备标识。Android 6.0-9. static StringgetAndroidID(Context context)获取AndroidID static StringgetWidevineID()获取数字版权管理设备ID static StringgetPseudoID()通过取出ROM版本、制造商、CPU型号以及其他硬件信息来伪造设备标识 static StringgetGUID(Context context)随机生成全局唯一标识并存到 {@code SharedPreferences}、{@code ExternalStorage}及{@code SystemSettings}。为保障在Android10以下版本上的稳定性,需要加入权限{@code WRITE_EXTERNAL_STORAGE}及{@code WRITE_SETTINGS}。static StringcalculateHash(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. voidonOAIDGetComplete(String result)成功获取到OAID voidonOAIDGetError(Exception error)OAID获取失败(不正常或获取不到) -
-
Method Detail
-
getClientId
static String getClientId()
使用该方法获取客户端唯一标识,需要先在Application里调用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。!!注意!!:若最终用户未同意隐私政策,或者不需要用到getClientId及getOAID,请不要调用这个方法
- Parameters:
application- 全局上下文
-
register
static void register(Application application, IRegisterCallback callback)
在应用启动时预取客户端标识及OAID,客户端标识按优先级尝试获取IMEI/MEID、OAID、AndroidID、GUID。!!注意!!:若最终用户未同意隐私政策,或者不需要用到getClientId及getOAID,请不要调用这个方法
- Parameters:
application- 全局上下文callback- 注册完成回调
-
getClientIdMD5
static String getClientIdMD5()
获取预取的客户端唯一标识的MD5值
-
getClientIdSHA1
static String getClientIdSHA1()
获取预取的客户端唯一标识的SHA-1值
-
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- 上下文
-
getWidevineID
static String getWidevineID()
获取数字版权管理设备ID
-
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
-
onOAIDGetComplete
void onOAIDGetComplete(String result)
成功获取到OAID
- Parameters:
result- OAID
-
onOAIDGetError
void onOAIDGetError(Exception error)
OAID获取失败(不正常或获取不到)
- Parameters:
error- 异常信息
-
-
-
-