iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >获取android手机设备的OAID
  • 290
分享到

获取android手机设备的OAID

Android 2022-06-06 13:06:59 290人浏览 薄情痞子
摘要

一、简介: 因传统的移动终端设备标识如国际移动设备识别码(IMEI)等已被部分国家认定为用户隐私的一部分,并存在被篡改和冒用的风险,所以在And

一、简介:

因传统的移动终端设备标识如国际移动设备识别码(IMEI)等已被部分国家认定为用户隐私的一部分,并存在被篡改和冒用的风险,所以在Android
10及后续版本中非厂商系统应用将无法获取IMEI、Mac等设备信息。无法获取IMEI会在用户行为统计过程中对设备识别产生一定影响。

近日移动安全联盟针对该问题联合国内手机厂商推出补充设备标准体系方案,选择OaiD字段作为IMEI等的替代字段。OAID字段是由中国信通院联合华为、小米、OPPO、VIVO等厂商共同推出的设备识别字段,具有一定的权威性,可满足用户行为统计的使用场景。(可能存在的问题:部分厂商还没有支持,不过随着更新版本,越来越多的手机已经纳入到兼容范围了)

二、获取方法 1、SDK获取

(获取地址)拉到最下面,如下截图
在这里插入图片描述

2.调用方法

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

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

3、设置依赖

implementation files(‘libs/miit_mdid_x.x.x.aar’)

4、混淆设置

-keep class com.bun.miitmdid.core.** {*;}

5、设置 gradle 编译选项,这块可以根据自己对平台的选择进 合 配置(如不需要,跳过即可)

ndk {
abiFilters 'armeabi-v7a','x86','arm64-v8a','x86_64','armeabi'
}
packaginGoptions {
doNotStrip "*/armeabi-v7ax86arm64-v8ax86_64/*.so"
doNotStrip "armeabi.so"
}

6、代码调用

(1)初始化 sdk

在应用的 application 的 onCreate 中方法调用方法:

JLibrary.InitEntry(base);

在这里插入图片描述
(2)获取设备 ID,有两种方法调用,事例代码详见附件 MiitHelper.java(下载的SDK中包含MiitHelper类)

既然方法一不推荐,咱们直接删除,跳过看方法二;

方法一

b1:直接调用,由于安卓 9 以后类加载的限制,所以安卓 9 以后不建议采 用,如需使用,需要做 MdidSdk.InitSdk 和
JLibrary.InitEntry()不能在一个类 里,还要注意包含这两个调用的类不能有依赖关系。 private int
DirectCall(Context cxt){ MdidSdk sdk = new MdidSdk(); return
sdk.InitSdk(cxt,this); }

方法二:

b2:反射调用,它的好处是 android 版本号无关,缺点是调用时间估计会长(经过测试跟直接调用在用时上区别不大。)

 MdidSdkHelper.InitSdk(context, true, new MiitHelper(new MiitHelper.AppIdsUpdater() {
      @Override
      public void OnIdsAvalid(@NonNull String ids) {
       //根方法中,我们如果只需要oaid,则只获取oaid即可
       // String oaid=_supplier.getOAID();
       String oaid = ids;
     }
 }));

(3)初始化 sdk 返加的错误码
INIT_ERROR_MANUFACTURER_NOSUPPORT 1008611 不支持的厂商INIT_ERROR_DEVICE_NOSUPPORT 1008612 不支持的设备INIT_ERROR_LOAD_CONFIGFILE 1008613 加载配置文件失败INIT_ERROR_RESULT_DELAY 1008614信息将会延迟返回,获取数据可能在异步线程,取决于设备INIT_HELPER_CALL_ERROR 1008615 反射调用失败

三. IdSupplier 接口说明

补充设备标识获取接口包括补充设备标识状态获取接口、匿名设备标识符获取接口、开发者匿名设备标识符获取接口、应用匿名设备标识符获取接口和关闭接口。

1、补充设备标识状态获取接口
该接口用于获取移动智能终端是否支持补充设备标识体系,确认支持后,可以继续获取所需设备标识符。
public boolean isSupported()参数 返回 说明无 boolean:是否支持补充设备标识符获取 true 为支持,false 为不支持
2、匿名设备标识符获取接口
在这里插入图片描述
3、开发者匿名设备标识符获取接口
String getVAID()参数 返回 说明无 String:返回开发者匿名设备 开发者匿名设备标识符最长标识符或空字符串 64 位,返回空字符串表示不支持,异常状态包括网络异常、appid 异常、应用异常等
在这里插入图片描述
4、应用匿名设备标识符获取接口
在这里插入图片描述

5、关闭接口
在这里插入图片描述

四. 使用建议 1、调用 MdidSdk 的 InitSdk 后,先检查返回值,如果返回值是不支持的设备或厂商,监听器也不会触发,如果是加载配置文件失败,联系我们的客服。 2、VAID/AAID 在初次调用时生成,生成需要访问网络,请确保网络通畅并可 访问公网。 3、同一设备中存有多个同一开发者应用,若需在单个应用卸载时保证 VAID不被重置,需在应用被卸载前,已有另外同一开发者 ID 的应用也读取过 VAID, 否则认定该开发者无需使用 VAID,值将被重置。 4、部分厂商,若应用未在其开发者平台后台上架,则认定未非法应用,无法 生成 VAID,手机 LOG 中将会有相关异常值输出。 5、在用户手机处于弱网、无法访问公网或非法应用情形下频繁调用 VAID 和 AAID 读取接口,终端会累计其调用次数,并限时限制其读取。 6、由于返回值可能为 null,使用逻辑判断中建议做判空处理。 7、若有表一中的异常出现,会有相关 Log 打出。 8、INIT_ERROR_DEVICE_NOSUPPORT 和 INIT_HELPER_CALL_ERROR 这两个暂时不会走回调,后续会调整。
作者:Chelsea0522


--结束END--

本文标题: 获取android手机设备的OAID

本文链接: https://www.lsjlt.com/news/28979.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • uniapp获取手机设备信息uuid\mac
    测试手机:荣耀60 获取安卓设备device.uuid或ANDROID_ID // 方法一:let mainActivity = plus.android.runtimeMainActivity();let Settings = plus....
    99+
    2023-09-06
    uni-app
  • 获取Android设备序列号的方法
    获取Android设备序列号的方法 在Android应用开发中,有时我们需要获取设备的唯一标识,例如设备序列号。设备序列号是一个字符串,可以用于标识特定的Android设备。本文将介绍如何在Andro...
    99+
    2023-10-11
    android Android
  • Android获取设备传感器的方法
    本文实例为大家分享了Android获取设备传感器的具体代码,供大家参考,具体内容如下 结果示例: xml代码: <xml version="1.0" encoding="ut...
    99+
    2024-04-02
  • Android手机获取Mac地址的方法
    最常用的方法,通过WiFiManager获取: private static String tryGetWifiMac(Context context) { WifiManager wm = (WifiManager) cont...
    99+
    2023-05-31
    android 手机 mac
  • Android获取蓝牙设备列表的方法
    最近换了一家公司,主要内容是做关于移动端室内定位的相关sdk,刚进来的时候信心满满,誓要干出一番天地!!!结果进来快一个多月了,根本没轮到我施展拳脚,给我搁置在一旁自己弄自己的。行吧...
    99+
    2024-04-02
  • android如何获取设备唯一标识
    这篇文章主要介绍了android如何获取设备唯一标识,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体如下: public static Str...
    99+
    2023-05-30
    android
  • Android 如何获取设备唯一标识
    目录一. 先简单总结一下比较常见的几个解决方案的弊端:1. IMEI2. Android ID3. MAC地址二. uuid + 本地文件,实现一个通用解决方案1. 思路2. 解决手...
    99+
    2024-04-02
  • android手机获取唯一标识的方法
    获取手机唯一标识 拼接的方式获取手机唯一标识第一种方式是获取IMEI,但是有的手机如果不是正品的话,就获取不到所以通过这一种方式还是会出现有的设备是没有唯一标识的 第二种方式获取手机卡的序列号,当然这种也不是唯一的,因为有的手机是双卡双待的...
    99+
    2023-05-31
    android 手机 标识
  • Android设备序列号:如何获取和查找您的Android设备的序列号
    Android设备序列号:如何获取和查找您的Android设备的序列号 在使用Android设备时,有时候需要查找设备的序列号来进行诊断、维修或者进行其他操作。本文将介绍如何获取和查找Android设...
    99+
    2023-10-01
    android Android
  • Android应用获取设备序列号的方法
    软硬件环境 Macbook Pro MGX 72 Android studio 2.1.2 Android 5.1.1前言上一篇介绍了如何获取ethernet的MAC地址,对于厂商来讲,除了MAC号,还有一项数据也很重要,那就是机器序...
    99+
    2023-05-31
    android 设备 序列号
  • Android设备获取扫码枪扫描内容
    条形码扫码枪现在随处可见,可以很迅速地扫描出条形码内容,比什么手机相机扫码快了不是一点两点。 为了节约成本,扫码枪可以直接通过蓝牙连接android或其他设备。 那么android...
    99+
    2024-04-02
  • Android中是如何获取手机联系人的
    这篇文章给大家介绍Android中是如何获取手机联系人的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Android 获取系统联系人信息的实例一、获取手机联系人姓名及手机号//跳转到系统联系人应用 Inten...
    99+
    2023-05-30
    android
  • android获取及监听手机网络状态
    目录一、获取当前手机联网方式是WiFi还是手机4G数据二、监听手机网络变化总结一、获取当前手机联网方式是WiFi还是手机4G数据 private boolean getNetwork...
    99+
    2024-04-02
  • 怎么获取Android设备电池电量状态
    这篇文章主要介绍“怎么获取Android设备电池电量状态”,在日常操作中,相信很多人在怎么获取Android设备电池电量状态问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么获取Android设备电池电量状态...
    99+
    2023-07-05
  • Android 应用中怎么获取手机里的图片
    本篇文章给大家分享的是有关Android 应用中怎么获取手机里的图片,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Android 实现获取手机里面的所有图片详解及实例实现代码:...
    99+
    2023-05-31
    android roi
  • Android设备如何获取扫码枪扫描的内容
    这篇文章将为大家详细讲解有关Android设备如何获取扫码枪扫描的内容,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。那么android设备如何通过蓝牙获取扫描内容的呢?1. 蓝牙配对,连接设备打开系统设置...
    99+
    2023-05-30
    android
  • Android 7.0开发获取存储设备信息的方法
    本文实例讲述了 Android 7.0开发获取存储设备信息的方法。分享给大家供大家参考,具体如下:Android 7.0开发相较之前有不少改进,具体可参考前面的文章Android7.0版本影响开发的改进分析,这里简单总结一下Android ...
    99+
    2023-05-30
    android7.0 存储设备 roi
  • Android开发中匿名设备标识符OAID使用及初始化
    目录ID说明 声明下载链接覆盖范围调用方法使用ID说明  设备唯一标识符(UDID):设备唯一硬件标识,设备生产时根据特定的硬件信息生成,可用于设备的生产环境及合...
    99+
    2024-04-02
  • Android ContentProvider实现获取手机联系人功能
    在之前项目中有用到关于获取手机联系人的部分,闲置就想和大家分享一下,话不多说,上代码:java部分:package com.example.content; import android.content.ContentResolver; ...
    99+
    2023-05-30
    android contentprovider 联系人
  • adb获取手机设备蓝牙&热点&wifi状态并操作的笔记
    adb获取手机设备蓝牙&热点&wifi状态并操作的笔记 在Windows上查找字符串使用的是findstr,在linux上使用的是grep 1 #获取状态 2 3 $ adb shell ps | ...
    99+
    2023-09-21
    adb android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作