注意:本文章分两个SDK版本,即:msa_mdid_1.0.13.jar(旧)和 oaid_sdk_1.0.22.aar(新,更新时间:20200710),我把它们分别叫做版本2(旧),版本1(新)。
最近新项目又要接入oaid,它的官网SDK已经更新新版本:oaid_sdk_1.0.22.aar,我就在原文章基础之上写版本1的接入的过程
大家可以直接接版本1(新 oaid_sdk_1.0.22.aar)即可。当然也可根据以下移动安全联盟的官网去查看是否有最新版
移动安全联盟的网址:
http://www.msa-alliance.cn/col.jsp?id=120
下载相关的移动安全联盟SDK,需要注册账号且需要审核,便于你们的接入我把SDK(oaid_sdk_1.0.22.aar)相关文档传到csdn上,下载下来即可,地址为:
https://download.csdn.net/download/zaq977684/12815316
包含以下文件:
1、把 oaid_sdk_x.x.x.aar 拷贝到项的 libs 目录,并设置依赖,其中 x.x.x代表版本号。如图所示:
2、将 supplierconfig.json 拷贝到项目 assets 目录下,并修改里边对应内容,特别是需要设置 appid 的部分。需要设置 appid 的部分需要去对应厂商的应用商店里注册自己的 app。
3、设置依赖
4、设置 gradle 编译选项,开发者可以根据自己对平台的选择进行合理配置
ndk {
abiFilters 'armeabi-v7a','x86','arm64-v8a','x86_64','armeabi'
}
考虑到 sdk 兼容性,sdk 包默认集成了所有常用 abi 的 so,包括 armeabi,armeabi-v7a, arm64-v8a, x84, x84_64 共五种,如果需要减小 SDK 体积,可以使用压缩工具打开 aar 文件,手动删除多余的架构。
5.如何调用
DemoHelper demoHelper= new DemoHelper(new DemoHelper.AppIdsUpdater() { @Override public void OnIdsAvalid(@NonNull String oaid) { } }); demoHelper.getDeviceIds(this);
6.说明
DemoHelper.java事例代码详见附件,由于我只想要oaid,所以接口方法我只返回oaid
这样简单的接入成功,有时间还是需要接入查看一下3个pdf文件的
http://www.msa-alliance.cn/col.jsp?id=120
配置如下图所示:
根据上图把相对应的代码黏贴到项目中去,不要黏贴错位了。
代码:
ndk {
abiFilters "armeabi", "armeabi-v7a"
}
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
输出指定的abi体系下的so库我只选择了:"armeabi", "armeabi-v7a",这个根据你们自己的需求添加,若添加其他体系在libs下也要记得添加so库。
图中的SystemOutClass和Spf是本项目的输出和保存oaid的工具类,可忽略。
idSupplier.getOAID()就是最终获取的参数
代码:
/**
* 获取oaid
*/
public void getOAID(){
try {
JLibrary.InitEntry(this);//初始化获取oaid的 sdk
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
MdidSdkHelper.InitSdk(BaseApplication.context(), true, new IIdentifierListener() {
@Override
public void OnSupport(boolean b, IdSupplier idSupplier) {
if (idSupplier == null) {
return;
}
SystemOutClass.syso("获取参数oaid....",idSupplier.isSupported());
if (idSupplier.isSupported()){
SystemOutClass.syso("获取参数idSupplier.getOAID()....",idSupplier.getOAID());
Spf.putStringSpf(SpfKey.OAID,idSupplier.getOAID());
}else{
Spf.putStringSpf(SpfKey.OAID,"");
}
}
});
}
getOAID在Application的onCreat方法中调用
代码:
-keep class com.bun.miitmdid.core.** {*;}