安卓开发轻松绕过隐私权限获取OAID手机唯一标识ID

根据“移动智能终端补充设备标识体系”技术要求,华为、小米、OPPO、vivo、中兴、努比亚、魅族、联想、三星等设备厂商均将逐步实现本标识体系,联盟计划开发并发布支持多厂商的统一的补充设备标识调用SDK,协助移动应用开发者更便捷的访问移动智能终端补充设备标识体系,推进相关业务。

IMEI属于个人隐私,现在已无法获取IMEI,因此需要使用OAID来替代。

SDK下载

文件分享

把 oaid_sdk_1.0.25.aar 拷贝到项的 libs 目录,并设置依赖。

implementation files('libs/oaid_sdk_1.0.25.aar')
将supplierconfig.json 拷贝到项目 assets 目录下,并修改 边对应内容,特别是需要设置 appid 的部分。需要设置 appid 的部分需要去对应厂商的应用商店注册自己的 app。需要注意的是,其中 label 部分内容无需修改。

核心代码,从官方给的demo里拿的

public class MainActivity extends AppCompatActivity implements IIdentifierListener {
    private TextView tvContent;
    String oaid;
    String vaid;
    String aaid;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tvContent = findViewById(R.id.tv);
        MdidSdkHelper.InitSdk(getApplicationContext(), true,this);
        //结果是异步返回的,使用时为空的话可以先休眠几秒
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("OAID: "+oaid);
        System.out.println("VAID: "+vaid);
        System.out.println("AAID: "+aaid);
    }

    @Override
    public void OnSupport(boolean b, IdSupplier idSupplier) {
        if(idSupplier==null) {
            return;
        }
        oaid=idSupplier.getOAID();
        vaid=idSupplier.getVAID();
        aaid=idSupplier.getAAID();

        StringBuilder builder=new StringBuilder();
        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");

        String idstext=builder.toString();
        Log.d("SdkDemo: ", idstext);
        onIdsAvalid(idstext);
    }

    public void onIdsAvalid(@NonNull final String ids) {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                tvContent.setText(ids);
            }
        });
    }
}
可能遇到的问题
OAID的返回是异步的,所以有时候可能执行完还没返回,这时候使用就会出问题了,建议在使用前先判空,若为空值先睡一会儿

替代方案
这里还有两个替代方案推荐
https://github.com/shuzilm-open-source/Get_Oaid_CNAdid
https://github.com/gzu-liyujiang/Android_CN_OAID
2021-06-22 突然发现点击上面的第一个仓库链接,会跳转至站内收费链接…这个不是我设的,甚至不是仓库所有者设置的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xcdm100

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值