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


package com.duoyou.api.oaid.impl;

import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.IBinder;
import android.provider.Settings;
import android.text.TextUtils;
import com.duoyou.api.oaid.IGetter;
import com.duoyou.api.oaid.IOAID;
import com.duoyou.api.oaid.OAIDException;
import com.duoyou.api.oaid.OAIDLog;
import com.duoyou.api.oaid.impl.OAIDService;
import duoyoulib.com.uodis.opendevice.aidl.OpenDeviceIdentifierService;

public class HuaweiImpl implements IOAID {
    private final Context context;
    private String packageName;

    public HuaweiImpl(Context context2) {
        this.context = context2;
    }

    @Override // com.duoyou.api.oaid.IOAID
    public void doGet(IGetter iGetter) {
        Context context2 = this.context;
        if (context2 != null && iGetter != null) {
            if (Build.VERSION.SDK_INT >= 24) {
                try {
                    String string = Settings.Global.getString(context2.getContentResolver(), "pps_oaid");
                    if (!TextUtils.isEmpty(string)) {
                        OAIDLog.print("Get oaid from global settings: " + string);
                        iGetter.onOAIDGetComplete(string);
                        return;
                    }
                } catch (Exception e) {
                    OAIDLog.print(e);
                }
            }
            if (!TextUtils.isEmpty(this.packageName) || supported()) {
                Intent intent = new Intent("com.uodis.opendevice.OPENIDS_SERVICE");
                intent.setPackage(this.packageName);
                OAIDService.bind(this.context, intent, iGetter, new OAIDService.RemoteCaller() {
                    /* class com.duoyou.api.oaid.impl.HuaweiImpl.AnonymousClass1 */

                    @Override // com.duoyou.api.oaid.impl.OAIDService.RemoteCaller
                    public String callRemoteInterface(IBinder iBinder) {
                        OpenDeviceIdentifierService asInterface = OpenDeviceIdentifierService.Stub.asInterface(iBinder);
                        if (!asInterface.isOaidTrackLimited()) {
                            return asInterface.getOaid();
                        }
                        throw new OAIDException("User has disabled advertising identifier");
                    }
                });
                return;
            }
            iGetter.onOAIDGetError(new OAIDException("Huawei Advertising ID not available"));
        }
    }

    @Override // com.duoyou.api.oaid.IOAID
    public boolean supported() {
        Context context2 = this.context;
        if (context2 == null) {
            return false;
        }
        try {
            PackageManager packageManager = context2.getPackageManager();
            if (packageManager.getPackageInfo("com.huawei.hwid", 0) != null) {
                this.packageName = "com.huawei.hwid";
            } else if (packageManager.getPackageInfo("com.huawei.hwid.tv", 0) != null) {
                this.packageName = "com.huawei.hwid.tv";
            } else {
                this.packageName = "com.huawei.hms";
                return packageManager.getPackageInfo("com.huawei.hms", 0) != null;
            }
        } catch (Exception e) {
            OAIDLog.print(e);
            return false;
        }
    }
}