当前位置:主页 > 移动开发 > Android代码 >

Android开发中匿名设备标识符OAID使用及初始化

时间:2022-08-14 09:30:01 | 栏目:Android代码 | 点击:

ID说明 

声明

下载链接

移动安全联盟官网SDK 获取地址

覆盖范围

厂商名称 支持版本
华为 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版本

调用方法

1.把oaid_sdk_x.x.x.aar拷贝到项的libs目录,并设置依赖,其中x.x.x代表版本号。

2.将supplierconfig.json拷贝到项目assets目录下,并修改?边对应内容,特别是需要设置appid的部分。需要设置appid的部分需要去对应厂商的应用商店?注册自己的app。需要注意的是,其中label部分内容无需修改。

3.设置依赖implementation files(‘libs/oaid_sdk_x.x.x.aar’)

4.设置gradle编译选项,开发者可以根据自己对平台的选择进行合理配置

 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.设置混淆

-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);
    }
}

设置回调

public interface AppIdsUpdater {
        void OnValidId(@NonNull JSONObject ids);
}

设置调用类

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());

您可能感兴趣的文章:

相关文章