目录

  • 简介
  • SDK下载
  • 支持版本
  • 开始使用
  • 可能遇到的问题
  • 替代方案
  • APK下载
  • 写在最后

简介

本文链接:
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 及以上版本
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 版本

开始使用

一定要使用最新版!
一定要使用最新版!
一定要使用最新版!
我最开始是用的老版本,碰到了很多问题,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;@Overrideprotected 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);}@Overridepublic 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() {@Overridepublic 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的新版本持续更新,如果觉得这篇博客有帮到你,不妨点个赞再走呢。

Android OAID 获取 基于MSA oaid_sdk_1.0.25.zip相关推荐

  1. 蓝牙血压计的android实现思路,基于蓝牙4.0的示波法电子血压计的设计与实现

    摘要: 由于人类饮食作息习惯的改变,近年来,心血管方面的疾病问题已经成为了致使人类过早的死亡和残疾的主要因素之一.而血压是人类的重要生理指标之一,健康的血压是维持人体进行正常的新陈代谢必不可少的条件, ...

  2. flyme最新7基于android,魅族flyme6基于安卓android7.0吗?魅族flyme6.0有什么功能?[图]...

    魅族flyme6你更新了吗?很多朋友已经在使用了!不少朋友还在观望!还有疑问,魅族flyme6基于安卓android7.0吗?魅族flyme6.0有什么功能?先来了解清楚吧! 魅族flyme6基于安卓 ...

  3. 华为emui3.1 android,EMUI3.1——基于安卓5.0深度定制

    华为P8搭载的是基于安卓5.0深度定制的EMUI3.1.华为自家的EMUI OS,经过1.0,.2.0和3.0版本之后,已经非常完善了.而此次推出的P8,又是专门为其量身定制了专有的主题(皮肤),和P ...

  4. android 动态获取全县_android 6.0之后动态获取权限

    1. 概述 Android 6.0 (API 23) 之前应用的权限在安装时全部授予,运行时应用不再需要询问用户.在 Android 6.0 或更高版本对权限进行了分类,对某些涉及到用户隐私的权限可在 ...

  5. android动态获取地理位置权限,Android6.0获取GPS定位和获取位置权限和位置信息的方法...

    1.添加权限--6.0之后要动态获取,下面会说 2.直接上代码,不多说,代码中注释很详细. private static final int BAIDU_READ_PHONE_STATE = 100; ...

  6. android中获取mac地址8.0,关于Android8.0以下手机获取蓝牙Mac地址的问题和扫描周围的手机蓝牙问题 下篇...

    接上篇,接下来我们就来看一下如何扫描到周围的手机蓝牙,主要是经典蓝牙 // 广播接收发现蓝牙设备 private BroadcastReceiver mReceiver = new Broadcast ...

  7. android中获取mac地址8.0,华为Mate10手机emui8.0系统怎么查看IP地址和mac地址?

    华为mate10手机怎么查看手机ip地址呢?华为mate10手机mac地址怎么查?华为华为Mate10和Mate10 pro都采用了最新的EMUI 8.0系统,使用起来十分舒服,下面就来说下华为Mat ...

  8. AndroidID、IMEI、OAID获取

    前言 因为项目中经常会遇到要上传一系列设备信息的功能,为了方便使用,所以就拆分成以下系列文章来单独介绍如何获取各类设备信息 手机运营商获取 AndroidID.IMEI.OAID获取 地理位置信息经纬 ...

  9. Android Q(10.0)上IMEI获取不到;Android Q(10.0)上OAID替代IMEI;OAID获取方式

    最近公司研发的 Android Q (android 10)的5G手机,然后就开始适配Android Q:发现无系统权限的应用无法获取到可作为唯一标识的IMEI,MAC等等:由于项目(负一屏/浏览器/ ...

  10. 基于TensorFlow2.3.0的花卉识别Android APP设计

    一.前言 本设计为基于TensorFlow2.3.0的花卉识别Android APP.TensorFlow2.3.0的API简单易用,训练好后模型导出tflite格式供Anroid APP使用. 开发 ...

最新文章

  1. Java必会的面试题
  2. 下载到FPGA内的文件格式
  3. TypeError: 'module' object is not callable 原因分析(python模块导入注意事项)
  4. Bootstrap学习笔记01【快速入门、栅格布局】
  5. 缩进一个字符_解析Word——Word段落格式中的几种缩进(中)
  6. [读书笔记]大型分布式网站架构设计与实践.分布式缓存
  7. const参数,const返回值与const函数
  8. linux里没有grub文件,linux – 安装Ubuntu后没有grub菜单,直接启动...
  9. Codeforces 815C. Karen and Supermarket【树形DP】
  10. PaddlePaddle顶会论文复现 | ECO视频动作识别网络
  11. [乐理知识] 第三章 拍子 节拍 节奏
  12. JQuery选择器跨frame和层次选择
  13. jQuery Mobile中复选框checkbox的data-*选项
  14. 设计师,程序员,当心字体侵权
  15. 最简单的dubbo教程-快速入门
  16. JS基础第四课、JQ基础第一课(BOM、JQuery框架)
  17. 小坤二次元炫酷导航HTML源码
  18. NOI2021 退役记
  19. 好看的css 显示 php,HTML+CSS实现好看的三角形提示框样式
  20. adobe flash media service5简单使用

热门文章

  1. 通俗讲解:傅立叶分析和小波分析之间的关系
  2. 动态数码管显示(proteus仿真图和程序)
  3. 《怎样解题》读书笔记
  4. weka与mysql相连_Weka与MySQL连接配置
  5. 2022年4月30号Mysql语句增删改查(CRUB)重在实操。
  6. 小爱同学app安卓版_小爱同学app下载|小爱同学手机版安卓最新版v2.8.21 下载_当游网...
  7. XFTP6 要继续使用此程序,您必须应用最新的更新或使用新版本
  8. 使用IDEA搭建SSM项目
  9. 计算机辅助设计与制造实例教程答案,计算机辅助设计实例教程= Example Course of Computer Aided Design...
  10. windows 资源监视器