Android開發(fā)中匿名設(shè)備標(biāo)識符OAID使用及初始化
ID說明
- 設(shè)備唯一標(biāo)識符(UDID):設(shè)備唯一硬件標(biāo)識,設(shè)備生產(chǎn)時根據(jù)特定的硬件信息生成,可用于設(shè)備的生產(chǎn)環(huán)境及合法性校驗。不對第三方應(yīng)用提供獲取接口,無法通過 SDK 獲取。
- 匿名設(shè)備標(biāo)識符(OAID):可以連接所有應(yīng)用數(shù)據(jù)的標(biāo)識符,移動智能終端系統(tǒng)首次啟動后立即生成,可用于廣告業(yè)務(wù)??梢酝ㄟ^ SDK 獲取到接口狀態(tài)(重置、關(guān)閉)、ID 值。
- 開發(fā)者匿名設(shè)備標(biāo)識符(VAID):用于開放給開發(fā)者的設(shè)備標(biāo)識符,可在應(yīng)用安裝時產(chǎn)生,可用于同一開發(fā)者不同應(yīng)用之間的推薦。可以通過 SDK 獲取到 ID 值。
- 應(yīng)用匿名設(shè)備標(biāo)識符(AAID):第三方應(yīng)用獲取的匿名設(shè)備標(biāo)識,可在應(yīng)用安裝時產(chǎn)生,可用于用戶統(tǒng)計等??梢酝ㄟ^ SDK 獲取到 ID 值。
聲明

下載鏈接
覆蓋范圍
| 廠商名稱 | 支持版本 |
|---|---|
| 華為 | HMS 2.6.2及以上 |
| 小米 | MIUI10.2及以上版本 |
| vivo | Android 9及以上版本 |
| oppo | Color OS 7.0及以上版本 |
| Lenovo | ZUI 11.4及以上版本 |
| 三星 | Android 10版本 |
| 魅族 | Android 10版本 |
| 努比亞 | Android 10版本 |
| 中興 | Android 10版本 |
| 華碩 | Android 10版本 |
| 一加 | Android 10版本 |
| 黑鯊 | Android 10版本 |
| 摩托羅拉 | Android 10版本 |
| Freeme OS | Android 10版本 |
調(diào)用方法
1.把oaid_sdk_x.x.x.aar拷貝到項的libs目錄,并設(shè)置依賴,其中x.x.x代表版本號。
2.將supplierconfig.json拷貝到項目assets目錄下,并修改里邊對應(yīng)內(nèi)容,特別是需要設(shè)置appid的部分。需要設(shè)置appid的部分需要去對應(yīng)廠商的應(yīng)用商店里注冊自己的app。需要注意的是,其中l(wèi)abel部分內(nèi)容無需修改。
3.設(shè)置依賴implementation files(‘libs/oaid_sdk_x.x.x.aar’)
4.設(shè)置gradle編譯選項,開發(fā)者可以根據(jù)自己對平臺的選擇進行合理配置
ndk {
abiFilters 'armeabi-v7a', 'x86', 'arm64-v8a', 'x86_64', 'armeabi'
}
packagingOptions {
doNotStrip "*/armeabi-v7a/*.so"
doNotStrip "*/x86/*.so"
doNotStrip "*/arm64-v8a/*.so"
doNotStrip "*/x86_64/*.so"
doNotStrip "armeabi.so"
}
5.設(shè)置混淆
-keep class XI.CA.XI.**{*;}
-keep class XI.K0.XI.**{*;}
-keep class XI.XI.K0.**{*;}
-keep class XI.vs.K0.**{*;}
-keep class XI.xo.XI.XI.**{*;}
-keep class com.asus.msa.SupplementaryDID.**{*;}
-keep class com.asus.msa.sdid.**{*;}
-keep class com.bun.lib.**{*;}
-keep class com.bun.miitmdid.**{*;}
-keep class com.huawei.hms.ads.identifier.**{*;}
-keep class com.samsung.android.deviceidservice.**{*;}
-keep class org.json.**{*;}
-keep public class com.netease.nis.sdkwrapper.Utils {public <methods>;}
使用
初始化
public class APP extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
JLibrary.InitEntry(base);
}
}
設(shè)置回調(diào)
public interface AppIdsUpdater {
void OnValidId(@NonNull JSONObject ids);
}
設(shè)置調(diào)用類
public class MiIdHelper implements IIdentifierListener {
private boolean isSupport;
private String oaid, vaid, aaid;
public JSONObject getDeviceIds(Context cxt) {
long startTime = System.currentTimeMillis();
int code = CallFromReflect(cxt);
long endTime = System.currentTimeMillis();
long time = endTime - startTime;
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("description", descriptionCode(code));
jsonObject.put("code", code);
jsonObject.put("time", time);
jsonObject.put("isSupport", isSupport);
jsonObject.put("oaid", oaid);
jsonObject.put("vaid", vaid);
jsonObject.put("aaid", aaid);
} catch (Exception e) {
e.printStackTrace();
}
return jsonObject;
}
private int CallFromReflect(Context cxt) {
return MdidSdkHelper.InitSdk(cxt, true, this);
}
@Override
public void OnSupport(boolean isSupport, IdSupplier _supplier) {
this.isSupport = isSupport;
if (_supplier != null) {
this.oaid = _supplier.getOAID();
this.vaid = _supplier.getVAID();
this.aaid = _supplier.getAAID();
_supplier.shutDown();
}
}
private String descriptionCode(int code) {
switch (code) {
case ErrorCode.INIT_ERROR_DEVICE_NOSUPPORT:
return "DEVICE_NOSUPPORT";
case ErrorCode.INIT_ERROR_LOAD_CONFIGFILE:
return "LOAD_CONFIGFILE";
case ErrorCode.INIT_ERROR_MANUFACTURER_NOSUPPORT:
return "MANUFACTURER_NOSUPPORT";
case ErrorCode.INIT_ERROR_RESULT_DELAY:
return "RESULT_DELAY";
case ErrorCode.INIT_HELPER_CALL_ERROR:
return "HELPER_CALL_ERROR";
default:
return "SUCCESS";
}
}
}
獲取OAID
MiIdHelper miIdHelper = new MiIdHelper(new AppIdsUpdater() {
@Override
public void OnValidId(@NonNull JSONObject ids) {
Log.e("OAID", ids.toString());
}
});
miIdHelper.getDeviceIds(getApplicationContext());
以上就是Android開發(fā)中匿名設(shè)備標(biāo)識符OAID使用及初始化的詳細內(nèi)容,更多關(guān)于Android開發(fā)匿名設(shè)備標(biāo)識符OAID的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
代碼從windows下visual studio到andriod平臺遷移實現(xiàn)步驟
這篇文章主要介紹了代碼從windows下visual studio到andriod平臺遷移的修改記錄的相關(guān)資料,需要的朋友可以參考下2017-01-01
Android實現(xiàn)應(yīng)用程序的閃屏效果
這篇文章主要為大家詳細介紹了Android實現(xiàn)應(yīng)用程序的閃屏效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-07-07
Android SDK 百度地圖通過poi城市內(nèi)檢索簡介接口的使用
這篇文章主要介紹了Android SDK 百度地圖通過poi城市內(nèi)檢索簡介接口的使用的相關(guān)資料,需要的朋友可以參考下2016-02-02
Android手機注冊登錄時獲取驗證碼之后倒計時功能(知識點總結(jié))
這篇文章主要介紹了Android手機注冊登錄時獲取驗證碼之后倒計時(知識點總結(jié))功能,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的的朋友參考下吧2017-01-01
Android實現(xiàn)底部彈出PopupWindow背景逐漸變暗效果
這篇文章主要為大家詳細介紹了Android實現(xiàn)底部彈出PopupWindow背景逐漸變暗效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-10-10
Android?registerForActivityResult新用法實現(xiàn)兩個Activity間數(shù)據(jù)傳遞
這篇文章主要為大家介紹了Android?registerForActivityResult新用法實現(xiàn)兩個Activity間數(shù)據(jù)傳遞詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-04-04
使用Chrome瀏覽器調(diào)試Android App詳解
這篇文章主要介紹了使用Chrome瀏覽器調(diào)試Android App詳解,本網(wǎng)講解了使用Facebook開源Stetho實現(xiàn)在Chrome中調(diào)試Android App中,需要的朋友可以參考下2015-05-05

