获取OAID

2022-05-05  本文已影响0人  清辉_
方法一  适用1.0.3 

先在 Application 里面的onCreate()  JLibrary.InitEntry(this);//获取oaid初始化 

public class MyOaIdUtils{
    public static void getOAID(Context context, final ADOAIDCallBack callBack) {

        //1.0.13
        MdidSdkHelper.InitSdk(context, true, new IIdentifierListener() {
            @Override
            public void OnSupport(boolean b, IdSupplier idSupplier) {
                Log.e("tag", "返回值:" + b);
                if (b) {
                    oaid = idSupplier.getOAID();
                    Log.e("tag", "获取oaid:" + oaid);
                }
                System.out.println("返回值:" + b+" 获取oaid:" + oaid);
                callBack.getOAIDSuccess(oaid);
            }
        });

//ADOAIDCallBack 接口类
public interface ADOAIDCallBack {

    void getOAIDSuccess(String oaid);
}


调用 
MyOaIdUtils.getOAID(context, new ADOAIDCallBack () {
                @Override
                public void getOAIDSuccess(String oaid) {
                    Log.e("tag", "获取oaid:" + oaid);
                }
            });

//官方的demo 

import android.content.Context;
import android.util.Log;
import com.bun.miitmdid.core.ErrorCode;
import com.bun.miitmdid.core.MdidSdkHelper;
import com.bun.miitmdid.interfaces.IIdentifierListener;
import com.bun.miitmdid.interfaces.IdSupplier;

/**
 * Created by caict on 2020/6/8.
 */
public class DemoHelper implements IIdentifierListener {
   private AppIdsUpdater _listener;
   public DemoHelper(AppIdsUpdater callback){
      _listener=callback;
   }
   public void getDeviceIds(Context cxt){
      long timeb=System.currentTimeMillis();
      // 方法调用
      int nres = CallFromReflect(cxt);

      long timee=System.currentTimeMillis();
      long offset=timee-timeb;
      if(nres == ErrorCode.INIT_ERROR_DEVICE_NOSUPPORT){//不支持的设备
      }else if( nres == ErrorCode.INIT_ERROR_LOAD_CONFIGFILE){//加载配置文件出错
      }else if(nres ==
              ErrorCode.INIT_ERROR_MANUFACTURER_NOSUPPORT){//不支持的设备厂商
      }else if(nres == ErrorCode.INIT_ERROR_RESULT_DELAY){//获取接口是异步的,结果会在回调中返回,回调执行的回调可能在工作线程
      }else if(nres == ErrorCode.INIT_HELPER_CALL_ERROR){//反射调出错
      }
      Log.d(getClass().getSimpleName(),"return value:"+String.valueOf(nres));
   }
   /*
    * 方法调用
    * */
   private int CallFromReflect(Context cxt){
      return MdidSdkHelper.InitSdk(cxt,true,this);
   }
   /*
    * 获取相应 id
    * */

   @Override
   public void OnSupport(boolean isSupport, IdSupplier _supplier)
   {
      if(_supplier==null) {
         return;
      }
      String oaid=_supplier.getOAID();
      String vaid=_supplier.getVAID();
      String aaid=_supplier.getAAID();
      StringBuilder builder=new StringBuilder();      builder.append("support:").append(isSupport?"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();
      if(_listener!=null){
         _listener.OnIdsAvalid(idstext);
      }
   }


   public interface AppIdsUpdater{
      void OnIdsAvalid( String ids);
   } }


// 在自己的类中调用

        DemoHelper miIdHelper = new DemoHelper(new DemoHelper.AppIdsUpdater() {
            @Override
            public void OnIdsAvalid(String ids) {
                System.out.println("2====返回值:" +" 获取oaid:" + ids);
                if (ids.contains("true")){
                    oaid = substringTest03(ids);
                    callBack.getOAIDSuccess(oaid);
                }else {
                    callBack.getOAIDSuccess("");
                }

            }
        });

        miIdHelper.getDeviceIds(context);
上一篇下一篇

猜你喜欢

热点阅读