-
- 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获取失败(不正常或获取不到) -
-
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
- 异常信息
-
-
-
-