Android OAID 获取 基于MSA oaid_sdk_1.0.25.zip

简介

本文链接:
https://blog.csdn.net/qq_40460042/article/details/112966136

根据“移动智能终端补充设备标识体系”技术要求,华为、小米、OPPO、vivo、中兴、努比亚、魅族、联想、三星等设备厂商均将逐步实现本标识体系,联盟计划开发并发布支持多厂商的统一的补充设备标识调用SDK,协助移动应用开发者更便捷的访问移动智能终端补充设备标识体系,推进相关业务。

OAID全称匿名设备标识符(Open Anonymous Device Identifier),是可以连接所有应用数据的标识符。在移动终端系统首次启动后立即生成,可用于广告业务,其生成参数中可包含设备唯一标识符参数。

IMEI属于个人隐私,现在已无法获取IMEI,因此需要使用OAID来替代。本文将使用MSA提供的最新版SDK 1.0.25(截至发文2021-01-22)

SDK下载

这里直接给出某位大佬在github上分享的资源https://github.com/2tu/msa我之前也是找了很久,感谢这位大佬。
oaid_sdk_1.0.25.zip度盘链接https://pan.baidu.com/s/1sVzBD_3mTXD_oqyu5I2VtQ 提取码:we54
官网下载需要以公司名义注册并且需要进行审核,比较麻烦,网上找的SDK下载竟然还需要收费。
官网:移动安全联盟MSA

支持版本

厂商名称支持版本
华为HMS 2.6.2 及以上
小米MIUI 10.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 版本

开始使用

一定要使用最新版!
一定要使用最新版!
一定要使用最新版!
我最开始是用的老版本,碰到了很多问题,MSA一直在完善SDK,所以请务必使用最新版!
这个版本我在安卓11的小米上测试正常

把 oaid_sdk_1.0.25.aar 拷贝到项的 libs 目录,并设置依赖。

implementation files('libs/oaid_sdk_1.0.25.aar')

将supplierconfig.json 拷贝到项目 assets 目录下,并修改 边对应内容,特别是需要设置 appid 的部分。需要设置 appid 的部分需要去对应厂商的应用商店注册自己的 app。需要注意的是,其中 label 部分内容无需修改。
项目结构
核心代码,从官方给的demo里拿的

public class MainActivity extends AppCompatActivity implements IIdentifierListener {
    private TextView tvContent;
    String oaid;
    String vaid;
    String aaid;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tvContent = findViewById(R.id.tv);
        MdidSdkHelper.InitSdk(getApplicationContext(), true,this);
        //结果是异步返回的,使用时为空的话可以先休眠几秒
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("OAID: "+oaid);
        System.out.println("VAID: "+vaid);
        System.out.println("AAID: "+aaid);
    }

    @Override
    public void OnSupport(boolean b, IdSupplier idSupplier) {
        if(idSupplier==null) {
            return;
        }
        oaid=idSupplier.getOAID();
        vaid=idSupplier.getVAID();
        aaid=idSupplier.getAAID();

        StringBuilder builder=new StringBuilder();
        builder.append("support: ").append(idSupplier.isSupported()?"true":"false").append("\n");
        builder.append("OAID: ").append(oaid).append("\n");
        builder.append("VAID: ").append(vaid).append("\n");
        builder.append("AAID: ").append(aaid).append("\n");

        String idstext=builder.toString();
        Log.d("SdkDemo: ", idstext);
        onIdsAvalid(idstext);
    }

    public void onIdsAvalid(@NonNull final String ids) {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                tvContent.setText(ids);
            }
        });
    }
}

可能遇到的问题

OAID的返回是异步的,所以有时候可能执行完还没返回,这时候使用就会出问题了,建议在使用前先判空,若为空值先睡一会儿

替代方案

这里还有两个替代方案推荐
https://github.com/shuzilm-open-source/Get_Oaid_CNAdid
https://github.com/gzu-liyujiang/Android_CN_OAID
2021-06-22 突然发现点击上面的第一个仓库链接,会跳转至站内收费链接…这个不是我设的,甚至不是仓库所有者设置的,联系客服,客服表示就是故意这么设计的,大家最好直接复制链接再打开

APK下载

这里提供一个编译好的apk,可以在机器上试试效果,在我安卓11的小米手机上测试通过,无需任何权限,可以放心安装。
https://pan.baidu.com/s/1vRYPJ5zSVm87LYbxiyV-VQ 提取码:2gr9
效果图

写在最后

有什么问题欢迎在评论区指出,后续也会跟随SDK的新版本持续更新,如果觉得这篇博客有帮到你,不妨点个赞再走呢。

  • 11
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值