Oaid获取接入流程

代码已过时,但是官方文档还在更新,一切问题请学习官方文档。

Oaid获取接入流程_第1张图片

1 什么是OAID?用来做什么的?

随着大数据和人工智能时代的到来,数据的价值也逐渐增加,移动终端设备标识码,如国际移动设备识别码(IMEI)、Wi-Fi MAC地址、SIM卡国际移动用户识别码(IMSI)和蓝牙地址等终端设备标识信息的收集和使用成为普遍现象。同时各国对用户隐私保护的要求越来越高,传统的移动终端设备标识如国际移动设备识别码(IMEI)等已被部分国家认定为用户隐私的一部分。另外,在很多与隐私无关的场景中,如生产、售后、报关、政府抽检等场景,传统设备标识码(如IMEI)被篡改或冒用的情况时有发生,给设备生产企业的经济利益带来损失,同时对设备追溯带来较大影响。

总结:为了保护隐私,使用OAID(匿名设备标识符)来替代IMEI

2 那么如何获取OAID?即使文章过期但是官网还在就可以更新

移动安全联盟官网地址


Oaid获取接入流程_第2张图片
下载的时候需要登录,随便注册一个账号不用花钱就可以下载依赖包了。

Oaid获取接入流程_第3张图片
解压完之后可以看到一个pdf文件,里面是详细的教程,建议大家看下如何使用,如果不想仔细看的话等会可以直接看demo

public class MyApplication extends Application {

    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        OaidHelper.getInstance().attachBaseContext(base);
    }

    @Override
    public void onCreate() {
        super.onCreate();
        OaidHelper.getInstance().getDeviceIds(this);
    }

}
public class OaidHelper {
    private static final OaidHelper ourInstance = new OaidHelper();

    public static OaidHelper getInstance() {
        return ourInstance;
    }

    private OaidHelper() {
    }

    public void attachBaseContext(Context base) {
        JLibrary.InitEntry(base);
    }

    public void getDeviceIds(Context context) {
        //获取OAID等设备标识符
        MiitHelper miitHelper = new MiitHelper(appIdsUpdater);
        miitHelper.getDeviceIds(context);
    }


    private List mListener = new ArrayList<>();

    public void addOaidListener(OaidListener listener) {
        if (listener != null) {
            mListener.add(listener);
        }
    }

    public interface OaidListener {
        void onOaid(String oaid);
    }

    private MiitHelper.AppIdsUpdater appIdsUpdater = new MiitHelper.AppIdsUpdater() {
        @Override
        public void onOaid(boolean isSupport, @NonNull String oaid) {
            Log.i("OaidHelper oaid===  ", oaid);
            if (!isSupport || TextUtils.isEmpty(oaid)) {
                return;
            }
            for (int i = 0; i < mListener.size(); i++) {
                mListener.get(i).onOaid(oaid);
            }
        }

        @Override
        public void onError(@NonNull String error) {
            Log.i("OaidHelper error===", error);
        }
    };
}

具体的使用请看我的demo Oaiddemo github

你可能感兴趣的:(项目实战,Oaid)