赞
踩
项目需求安卓10需要获取oaid参数,网上找了一圈,发现写的实现方式都比较复杂多余。摸索了一下 这里做个记录
1:下载移动安全联盟(MSA)提供的sdk
2:一般安卓项目可以直接接入移动安全联盟提供的aar格式sdk包,不过由于我们项目比较特殊,我把aar格式的sdk拆分成jar包资源进行集成的:
步骤也比较简单,把所有的资源放入项目的指定位置,配置一下需要的权限
3:下面是实现的代码,一共就两个步骤:初始化sdk、获取oaid 结束。
参考下面加粗倾斜部分代码,要注意获取oaid不要在主线程中调用,否则可能报错
public class MainActivity extends AppCompatActivity { private String TAG = "MainActivity"; private TextView tvMsg; int errorCode = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tvMsg = findViewById(R.id.tv_msg); try { JLibrary.InitEntry(MainActivity.this);//初始化 } catch (Exception e) { e.printStackTrace(); } new Thread(){ @Override public void run() { //需要在子线程中处理的逻辑 errorCode = MdidSdkHelper.InitSdk(MainActivity.this, true, new IIdentifierListener() { @Override public void OnSupport(boolean b, IdSupplier idSupplier) { if (idSupplier == null) { return; } Log.e(TAG,"OAID = " + idSupplier.getOAID()); tvMsg.setText("OAID = " + idSupplier.getOAID()); } }); } }.start(); if (errorCode == ErrorCode.INIT_ERROR_DEVICE_NOSUPPORT) {//不支持 的设备 Log.e(TAG,"不支持的设备"); } else if (errorCode == ErrorCode.INIT_ERROR_LOAD_CONFIGFILE) {// 加载配置文件出错 Log.e(TAG,"加载配置文件出错"); } else if (errorCode == ErrorCode.INIT_ERROR_MANUFACTURER_NOSUPPORT) {//不支持的设备厂商 Log.e(TAG,"不支持的设备厂商"); } else if (errorCode == ErrorCode.INIT_ERROR_RESULT_DELAY) {//获取接口是异步的,结果会在回调中返回,回调执行的回调可能在工作线程 Log.e(TAG,"获取接口是异步的,结果会在回调中返回,回调执行的回调可能在工作线程"); } else if (errorCode == ErrorCode.INIT_HELPER_CALL_ERROR) {//反射调 用出错 Log.e(TAG,"反射调用出错"); } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。