Oaid

自己項目中遇到了一個獲取oaid的需求,看了下該作者的demoAndroid獲取OAID博客地址
感謝作者的同時自己也對這個demo進行了優化,結尾附上自己的項目github地址

1 什麼是OAID?用來做什麼的?

隨着大數據和人工智能時代的到來,數據的價值也逐漸增加,移動終端設備標識碼,如國際移動設備識別碼(IMEI)、Wi-Fi MAC地址、SIM卡國際移動用戶識別碼(IMSI)和藍牙地址等終端設備標識信息的收集和使用成爲普遍現象。同時各國對用戶隱私保護的要求越來越高,傳統的移動終端設備標識如國際移動設備識別碼(IMEI)等已被部分國家認定爲用戶隱私的一部分。另外,在很多與隱私無關的場景中,如生產、售後、報關、政府抽檢等場景,傳統設備標識碼(如IMEI)被篡改或冒用的情況時有發生,給設備生產企業的經濟利益帶來損失,同時對設備追溯帶來較大影響。

總結:爲了保護隱私,使用OAID(匿名設備標識符)來替代IMEI

2 那麼如何獲取OAID?即使文章過期但是官網還在就可以更新

移動安全聯盟官網地址

在這裏插入圖片描述
在這裏插入圖片描述
下載的時候需要登錄,隨便註冊一個賬號不用花錢就可以下載依賴包了。

在這裏插入圖片描述
解壓完之後可以看到一個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<OaidListener> 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章