翰林优商.apk(点击下载) / XiaomiImpl.java


package com.duoyou.api.oaid.impl;

import android.content.Context;
import com.duoyou.api.oaid.IGetter;
import com.duoyou.api.oaid.IOAID;
import com.duoyou.api.oaid.OAIDException;
import com.duoyou.api.oaid.OAIDLog;

public class XiaomiImpl implements IOAID {
    private final Context context;
    private Class<?> idProviderClass;
    private Object idProviderImpl;

    public XiaomiImpl(Context context2) {
        this.context = context2;
        try {
            Class<?> cls = Class.forName("com.android.id.impl.IdProviderImpl");
            this.idProviderClass = cls;
            this.idProviderImpl = cls.newInstance();
        } catch (Exception e) {
            OAIDLog.print(e);
        }
    }

    private String getOAID() {
        return (String) this.idProviderClass.getMethod("getOAID", Context.class).invoke(this.idProviderImpl, this.context);
    }

    @Override // com.duoyou.api.oaid.IOAID
    public void doGet(IGetter iGetter) {
        if (this.context != null && iGetter != null) {
            if (this.idProviderClass == null || this.idProviderImpl == null) {
                iGetter.onOAIDGetError(new OAIDException("Xiaomi IdProvider not exists"));
                return;
            }
            try {
                String oaid = getOAID();
                if (oaid == null || oaid.length() == 0) {
                    throw new OAIDException("OAID query failed");
                }
                OAIDLog.print("OAID query success: " + oaid);
                iGetter.onOAIDGetComplete(oaid);
            } catch (Exception e) {
                OAIDLog.print(e);
                iGetter.onOAIDGetError(e);
            }
        }
    }

    @Override // com.duoyou.api.oaid.IOAID
    public boolean supported() {
        return this.idProviderImpl != null;
    }
}