首页 > 编程知识 正文

android获取编辑框的内容,android获取位置信息

时间:2023-05-04 10:43:45 阅读:282466 作者:3148

目录

写在最前面

写在前面

说明文档

SDK使用过程:

代码实现


 

写在最前面

      看评论有好些朋友遇到了一些我没遇到的问题,而且看官方文档也已经更新,想着这些问题官方是不是已经优化解决了,就按着最新的文档把项目重新捋了一遍。基于《移动智能终端补充设备标识体系统一调用SDK开发者说明文档v1.10》和miit_mdid_1.0.10.aar 更新了一下项目。项目地址:GitHub  https://github.com/haoguibao/OaidDemo/tree/master

      文档和sdk我放网盘了。链接: https://pan.baidu.com/s/1bAoi8h2s2DTO1vWKPdkmQg 提取码: mia1   当然了官网上也能找到最新的文档和sdk来下载(官网地址:http://www.msa-alliance.cn/ )。另外编译了一个可运行的OaidDemo.apk,也在上面网盘里面放着,可以直接安装一下运行看行不行。

       把之前项目中获取IMEI和权限等代码删除了,仅保留了获取OAID的方法,仅供参考。

       现在是腊月廿七,再有几天就要过年了,提前祝大家新年快乐,身体健康,发财不发福!(* ̄︶ ̄)

 

****************************************************以下是原文********************************************************

写在前面

前段时间在登录vivo开放平台时,看见官方发公告了,以后逐渐要禁止获取IMEI,使用OAID(匿名设备标识符)来替代IMEI在app的作用(另外我们也可以获取VAID和AAID,下文会提到),所以找到官方文档,写个获取OAID的Demo,权当为以后替换IMEI做个铺垫。

说明文档

下面的内容基于《移动智能终端补充设备标识体系统一调用SDK开发者说明文档v1.9》来展开,后期官方文档也会持续更改,如需获取最新文档或sdk,请关注移动安全联盟MSA官网:http://www.msa-alliance.cn/

SDK支持的终端范围:(具体支持时间得看相应厂商的正式公告)

厂商版本小米MIUI10.2 及以上vivoFuntouchOS 9 及以上华为全版本OPPOColor OS 7.0 及以上(10月份正式支持)LenovoZUI 11.4 及以上(10月中旬正式支持)华硕Android Q(10月份会正式支持)魅族10月份将支持三星10月份将支持中兴10月份将支持努比亚10月份将支持

术语和定义:

英文缩写中文名称英文全称长度IMEI国际移动设备识别码International Mobile Equipment Identity15~17位UDID设备唯一标识符Unique Device Identifier最长64位OAID匿名设备标识符Open Anonymous Device Identifier最长64位VAID开发者匿名设备标识符Vender Anonymous Device Identifier最长64位AAID应用匿名设备标识符Application Anonymous Device Identifier最长64位SDK使用过程:

目前(截止2019-9-29)最新sdk链接: https://pan.baidu.com/s/1C9k9ntev300-z7FzaZfkYw 提取码: 6qv2

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

2、将 supplierconfig.json 拷贝到项目 assets 目录下。(暂时不用修改,只需原样放到assets目录下即可,这个是给未来做准备的。如果想要使用VAID,可修改里边对应内容,特别是需要设置 appid 的部分,要去对应厂商的应用商店里注册自己的 app,来获取对应appid。)

3、设置依赖

implementation files('libs/miit_mdid_x.x.x.aar')

4、设置混淆(不需混淆的可忽略)

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

5、设置gradle编译选项。(自己合理配置即可,大家在项目中大都已经配置过)

6、代码调用

     a、初始化SDK

           在应用的 application 的 attachBaseContext方法中调用方法: JLibrary.InitEntry(base);

     b、获取设备ID,详见OaidDemo中的MiitHelper.java 。(可以直接把MiitHelper.java类复制到自己的项目中)

/* * 通过反射调用,解决android 9以后的类加载升级,导至找不到so中的方法 * * */ private int CallFromReflect(Context cxt) { return MdidSdkHelper.InitSdk(cxt, true, this); }

      c、初始化sdk时可能返回的错误码

错误信息值说明INIT_ERROR_MANUFACTURER_NOSUPPORT1008611不支持的厂商INIT_ERROR_DEVICE_NOSUPPORT1008612不支持的设备INIT_ERROR_LOAD_CONFIGFILE1008613加载配置文件出错INIT_ERROR_RESULT_DELAY1008614信息将会延迟返回,获取数据可能在异步线程,取决于设备INIT_HELPER_CALL_ERROR1008615反射调用出错代码实现

Demo已经上传GitHub,链接:https://github.com/haoguibao/OaidDemo/tree/master

具体的获取调用代码在DevicesUtil.java类里面,整合了获取OAID,IMEI,AndroidId和UUID等方法。

获取的标识符优先级为oaid > IMEI > AndroidId

/** * 获取唯一标识idfa * <p> * 支持获取oaid的,优先获取oaid, * 其次是IMEI, * 如果没有得到IMEI权限,则获取AndroidId * * @param context * @return */ public static String getIdfa(Context context) { String idfa; if (MyApplication.isSupportOaid()) { idfa = MyApplication.getOaid(); } else { idfa = getUniqueId(context); } return idfa; }

写了半天,发现就跟抄了一遍文档一样(捂脸),权当是篇笔记吧。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。