日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

Android 获取唯一Id

發(fā)布時(shí)間:2023/12/20 Android 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 获取唯一Id 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

git:GitHub - gzu-liyujiang/Android_CN_OAID: 安卓設(shè)備唯一標(biāo)識(shí)解決方案,可完全替代移動(dòng)安全聯(lián)盟統(tǒng)一 SDK 閉源方案。包括國(guó)內(nèi)手機(jī)廠商的開放匿名標(biāo)識(shí)(OAID)、海外手機(jī)平臺(tái)的安卓廣告標(biāo)識(shí)(AAID),另外也提供了 IMEI/MEID、AndroidID、WidevineID、PseudoID、GUID 等常見的設(shè)備標(biāo)識(shí)的獲取方法。

?使用

全局build.gradle中

allprojects {repositories {maven { url 'https://www.jitpack.io' }} }

?app?build.gradle中

api 'com.github.gzu-liyujiang:Android_CN_OAID:4.2.4' // 在`Application#onCreate`里初始化,注意APP合規(guī)性,若最終用戶未同意隱私政策則不要調(diào)用@Overridepublic void onCreate() {super.onCreate();if (privacyPolicyAgreed) {DeviceIdentifier.register(this);}}

獲取方法

// 獲取IMEI,只支持Android 10之前的系統(tǒng),需要READ_PHONE_STATE權(quán)限,可能為空DeviceIdentifier.getIMEI(this);// 獲取安卓ID,可能為空DeviceIdentifier.getAndroidID(this);// 獲取數(shù)字版權(quán)管理ID,可能為空DeviceIdentifier.getWidevineID();// 獲取偽造ID,根據(jù)硬件信息生成,不會(huì)為空,有大概率會(huì)重復(fù)DeviceIdentifier.getPseudoID();// 獲取GUID,隨機(jī)生成,不會(huì)為空DeviceIdentifier.getGUID(this);// 是否支持OAID/AAIDDeviceID.supportedOAID(this);// 獲取OAID/AAID,同步調(diào)用DeviceIdentifier.getOAID(this);// 獲取OAID/AAID,異步回調(diào)DeviceID.getOAID(this, new IGetter() {@Overridepublic void onOAIDGetComplete(String result) {// 不同廠商的OAID/AAID格式是不一樣的,可進(jìn)行MD5、SHA1之類的哈希運(yùn)算統(tǒng)一}@Overridepublic void onOAIDGetError(Exception error) {// 獲取OAID/AAID失敗}});

混淆規(guī)則

-keep class repeackage.com.uodis.opendevice.aidl.** { *; } -keep interface repeackage.com.uodis.opendevice.aidl.** { *; } -keep class repeackage.com.asus.msa.SupplementaryDID.** { *; } -keep interface repeackage.com.asus.msa.SupplementaryDID.** { *; } -keep class repeackage.com.bun.lib.** { *; } -keep interface repeackage.com.bun.lib.** { *; } -keep class repeackage.com.heytap.openid.** { *; } -keep interface repeackage.com.heytap.openid.** { *; } -keep class repeackage.com.samsung.android.deviceidservice.** { *; } -keep interface repeackage.com.samsung.android.deviceidservice.** { *; } -keep class repeackage.com.zui.deviceidservice.** { *; } -keep interface repeackage.com.zui.deviceidservice.** { *; } -keep class repeackage.com.coolpad.deviceidsupport.** { *; } -keep interface repeackage.com.coolpad.deviceidsupport.** { *; } -keep class repeackage.com.android.creator.** { *; } -keep interface repeackage.com.android.creator.** { *; }

支持情況

廠商或品牌系統(tǒng)或框架
華為(Huawei、Honor)HMS Core 2.6.2+ 、Google Play Service 4.0+
小米(XiaoMi、Redmi、BlackShark)MIUI 10.2+、Google Play Service 4.0+
維沃(VIVO、IQOO)Funtouch OS 9+、OriginOS 1.0+、Google Play Service 4.0+
歐珀(OPPO、Realme)ColorOS 7.0+、Google Play Service 4.0+
三星(Samsung)Android 10+、Google Play Service 4.0+
聯(lián)想(Lenovo)ZUI 11.4+、Google Play Service 4.0+
華碩(ASUS)Android 10+、Google Play Service 4.0+
魅族(Meizu)Android 10+、Google Play Service 4.0+
一加(OnePlus)Android 10+、Google Play Service 4.0+
努比亞(Nubia)Android 10+、Google Play Service 4.0+
酷派(Coolpad)CoolOS、Google Play Service 4.0+
酷賽(Coosea )Android 10+、Google Play Service 4.0+
卓易(Droi )Freeme OS、Google Play Service 4.0+
其他(ZTE、HTC、Motorola、……)SSUI、Google Play Service 4.0+

?OAID(開放匿名設(shè)備標(biāo)識(shí)符)

?

其他手機(jī)請(qǐng)殘照 上面網(wǎng)址的下方readMe

?我簡(jiǎn)單封裝了一下 需要可以用我封裝好的

//獲取安卓ID,可能為空f(shuō)un getAndroidId(context: Context): String? {return DeviceIdentifier.getAndroidID(context);}//獲取IMEI,只支持Android 10之前的系統(tǒng),需要READ_PHONE_STATE權(quán)限,可能為空f(shuō)un getImei(context: Context): String {return DeviceIdentifier.getIMEI(context);}/*** 獲取設(shè)備唯一ID*/fun getUniqueDeviceId(context: Context): String {//oaidval supportedOAID = DeviceID.supportedOAID(context);if(supportedOAID){// 獲取OAID/AAID,同步調(diào)用val oaid = DeviceIdentifier.getOAID(context);return oaid}//android Idval androidId = getAndroidId(context);if (!TextUtils.isEmpty(androidId)) {return androidId!!;}// 獲取數(shù)字版權(quán)管理ID,可能為空val widevineID = DeviceIdentifier.getWidevineID();if (!TextUtils.isEmpty(widevineID)) {return widevineID!!;}// 獲取偽造ID,根據(jù)硬件信息生成,不會(huì)為空,有大概率會(huì)重復(fù)val pseudoID = DeviceIdentifier.getPseudoID();if (!TextUtils.isEmpty(pseudoID)) {return pseudoID!!;}//串號(hào)val imei = getImei(context)if (!TextUtils.isEmpty(imei)) {return imei;}return "";}// 獲取GUID,隨機(jī)生成,不會(huì)為空 不會(huì)重復(fù)private fun getGuid(context: Context): String? {val guid = DeviceIdentifier.getGUID(context);return guid}// 獲取UUID,隨機(jī)生成,不會(huì)為空 不會(huì)重復(fù)private fun getUUID(context: Context): String {val uniqueID: String = UUID.randomUUID().toString()return uniqueID}

總結(jié)

以上是生活随笔為你收集整理的Android 获取唯一Id的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。