AAID、可以通过 SDK 获取到 ID值
发布时间:2025-06-24 17:59:54 作者:北方职教升学中心 阅读量:816
VAID
OAID
OAID是"Android ID"(安卓ID)的一种替代方案,其全称为"Open Anonymous Identifier"(开放匿名标识符)。可以通过 SDK 获取到接口状态(重 置、【 官方文档中说配置文件不用修改,只需填写对应 appid,并放到 assets 目录下即可 】
设置依赖
设置gradle编译选项,开发者可以根据自己对平台的选择进行合理配置(测试的时候不配置也没什么问题)
ndk { abiFilters ‘armeabi-v7a’,‘x86’,‘arm64-v8a’,‘x86_64’,‘armeabi’ }
代码实现
publicclassMainActivityextendsAppCompatActivityimplementsIIdentifierListener{privateTextViewtvContent;Stringoaid;Stringvaid;Stringaaid;@SuppressLint("MissingInflatedId")@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tvContent =findViewById(R.id.tv);MdidSdkHelper.InitSdk(getApplicationContext(),true,this);//结果是异步返回的,使用时为空的话可以先休眠几秒try{Thread.sleep(1000);}catch(InterruptedExceptione){e.printStackTrace();}System.out.println("OAID: "+oaid);System.out.println("VAID: "+vaid);System.out.println("AAID: "+aaid);}@OverridepublicvoidOnSupport(booleanb,IdSupplieridSupplier){if(idSupplier==null){return;}oaid=idSupplier.getOAID();vaid=idSupplier.getVAID();aaid=idSupplier.getAAID();StringBuilderbuilder=newStringBuilder();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");Stringidstext=builder.toString();Log.d("SdkDemo: ",idstext);onIdsAvalid(idstext);}publicvoidonIdsAvalid(@NonNullfinalStringids){runOnUiThread(newRunnable(){@Overridepublicvoidrun(){tvContent.setText(ids);}});}}
效果
三方实现接入
接入指引
github地址:https://github.com/gzu-liyujiang/Android_CN_OAID
文档已经写的特别详细了,但是还是有一些地方需要注意一下:
dependencies {implementation('com.github.gzu-liyujiang:Android_CN_OAID:最新版本号'){// 如果使用了移动安全联盟SDK,共存的话需排除掉本项目依赖的华为/荣耀官方广告标识服务SDK,因为移动安全联盟SDK也依赖了华为/荣耀的SDK// 如果华为官方广告标识服务SDK下载失败或编译报错的话,可考虑在 build.gradle 中增加以下配置:// repositories { maven { url 'https://developer.huawei.com/repo' } }// runtimeOnly "com.huawei.hms:ads-identifier:3.4.62.300"exclude group:'com.huawei.hms',module:'ads-identifier' // 荣耀官方广告标识服务SDK同理: // repositories { maven { url 'https://developer.hihonor.com/repo' } }// runtimeOnly "com.hihonor.mcs:ads-identifier:1.0.2.301"exclude group:'com.hihonor.mcs',module:'ads-identifier'}}
在这里,如果在kotlin的dsl中应该这么写exclude group:
implementation ("com.github.gzu-liyujiang:Android_CN_OAID:4.2.9"){exclude(group ="com.huawei.hms', module: 'ads-identifier")exclude(group ="'com.hihonor.mcs', module: 'ads-identifier")}
代码实现
publicclassMainActivityextendsAppCompatActivity{privateTextViewtextViewOAID;@SuppressLint("MissingInflatedId")@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textViewOAID=findViewById(R.id.textViewOAID);//DeviceIdentifier.register(this.getApplication());//获取IMEI,只支持Android10之前的系统,需要READ_PHONE_STATE权限,可能为空DeviceIdentifier.getIMEI(this);//获取安卓ID,可能为空DeviceIdentifier.getAndroidID(this);//获取数字版权管理ID,可能为空。写在最后
感谢参考的几篇文档:
https://blog.csdn.net/Myfittinglife/article/details/121520111
https://blog.csdn.net/mingtiannihao0522/article/details/104630967
https://juejin.cn/post/6924191966146068493