欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android開(kāi)發(fā)中匿名設(shè)備標(biāo)識(shí)符OAID使用及初始化

 更新時(shí)間:2022年04月27日 17:31:17   作者:ZH-黑夜  
這篇文章主要為大家介紹了Android開(kāi)發(fā)中匿名設(shè)備標(biāo)識(shí)符OAID使用及初始化,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

ID說(shuō)明 

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

聲明

下載鏈接

移動(dòng)安全聯(lián)盟官網(wǎng)SDK 獲取地址

覆蓋范圍

廠商名稱(chēng)支持版本
華為HMS 2.6.2及以上
小米MIUI10.2及以上版本
vivoAndroid 9及以上版本
oppoColor OS 7.0及以上版本
LenovoZUI 11.4及以上版本
三星Android 10版本
魅族Android 10版本
努比亞Android 10版本
中興Android 10版本
華碩Android 10版本
一加Android 10版本
黑鯊Android 10版本
摩托羅拉Android 10版本
Freeme OSAndroid 10版本

調(diào)用方法

1.把oaid_sdk_x.x.x.aar拷貝到項(xiàng)的libs目錄,并設(shè)置依賴(lài),其中x.x.x代表版本號(hào)。

2.將supplierconfig.json拷貝到項(xiàng)目assets目錄下,并修改里邊對(duì)應(yīng)內(nèi)容,特別是需要設(shè)置appid的部分。需要設(shè)置appid的部分需要去對(duì)應(yīng)廠商的應(yīng)用商店里注冊(cè)自己的app。需要注意的是,其中l(wèi)abel部分內(nèi)容無(wú)需修改。

3.設(shè)置依賴(lài)implementation files(‘libs/oaid_sdk_x.x.x.aar’)

4.設(shè)置gradle編譯選項(xiàng),開(kāi)發(fā)者可以根據(jù)自己對(duì)平臺(tái)的選擇進(jìn)行合理配置

 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)用類(lèi)

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開(kāi)發(fā)中匿名設(shè)備標(biāo)識(shí)符OAID使用及初始化的詳細(xì)內(nèi)容,更多關(guān)于Android開(kāi)發(fā)匿名設(shè)備標(biāo)識(shí)符OAID的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Android控件實(shí)現(xiàn)水滴效果

    Android控件實(shí)現(xiàn)水滴效果

    這篇文章主要為大家詳細(xì)介紹了Android控件實(shí)現(xiàn)水滴效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • Android中Gallery和ImageSwitcher的使用實(shí)例

    Android中Gallery和ImageSwitcher的使用實(shí)例

    今天小編就為大家分享一篇關(guān)于Android中Gallery和ImageSwitcher的使用實(shí)例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • Android自定義控件實(shí)現(xiàn)不規(guī)則區(qū)域點(diǎn)擊事件

    Android自定義控件實(shí)現(xiàn)不規(guī)則區(qū)域點(diǎn)擊事件

    這篇文章主要為大家詳細(xì)介紹了Android自定義控件實(shí)現(xiàn)不規(guī)則區(qū)域點(diǎn)擊事件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Android BaseAdapter應(yīng)用實(shí)例

    Android BaseAdapter應(yīng)用實(shí)例

    這篇文章主要介紹了Android BaseAdapter應(yīng)用方法,結(jié)合生成聯(lián)系人Items的實(shí)例形式分析了BaseAdapter的使用技巧,需要的朋友可以參考下
    2016-01-01
  • Android模擬用戶(hù)點(diǎn)擊的實(shí)現(xiàn)方法

    Android模擬用戶(hù)點(diǎn)擊的實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于Android模擬用戶(hù)點(diǎn)擊的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)學(xué)習(xí)學(xué)習(xí)吧。
    2018-02-02
  • Android多媒體教程之播放視頻的四種方法

    Android多媒體教程之播放視頻的四種方法

    這篇文章主要給大家介紹了關(guān)于Android多媒體教程之播放視頻的四種方法,分別是通過(guò)intent的方式,調(diào)用系統(tǒng)自帶的播放器、使用VideoView、MediaPlayer + SurfaceView及MediaPlayer + TextureView等方法,需要的朋友們可以參考學(xué)習(xí)。
    2017-06-06
  • Android 自定義view之畫(huà)圖板實(shí)現(xiàn)方法

    Android 自定義view之畫(huà)圖板實(shí)現(xiàn)方法

    本文重在對(duì)自定義view,以及其常用類(lèi),常用方法的初步了解,提供一個(gè)思路,效果是其次,畫(huà)板只是例子,需要的朋友可以參考下
    2018-01-01
  • Android Flutter實(shí)現(xiàn)圖片滑動(dòng)切換效果

    Android Flutter實(shí)現(xiàn)圖片滑動(dòng)切換效果

    Flutter 為了簡(jiǎn)化開(kāi)發(fā),提供了不少轉(zhuǎn)換動(dòng)畫(huà)組件,這類(lèi)組件通常命名為 xxTransition。本篇要介紹的就是 SlideTransition,并用它實(shí)現(xiàn)圖片滑動(dòng)切換效果,感興趣的可以了解一下
    2022-04-04
  • Android引用arr包的兩種方法

    Android引用arr包的兩種方法

    這篇文章介紹了android中引用arr包的兩種方法,jar包和arr包,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-11-11
  • Android ListView列表控件的介紹和性能優(yōu)化

    Android ListView列表控件的介紹和性能優(yōu)化

    這篇文章主要介紹了Android ListView列表控件的介紹和性能優(yōu)化,需要的朋友可以參考下
    2017-06-06

最新評(píng)論