All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.yy.httpproxy.thirdparty.HuaweiProvider Maven / Gradle / Ivy

There is a newer version: 1.1.28
Show newest version
package com.yy.httpproxy.thirdparty;

import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;

import com.yy.httpproxy.util.Log;
import com.yy.httpproxy.util.ServiceCheckUtil;
import com.yy.httpproxy.util.Version;

import java.lang.reflect.Method;

/**
 * Created by Administrator on 2016/4/29.
 */
public class HuaweiProvider implements NotificationProvider {

    public final static String TAG = "HuaweiProvider";
    private String token;

    public HuaweiProvider(Context context) {
        Log.i("HuaweiProvider", "init");
        HuaweiCallback callback = new HuaweiCallback(context);
    }


    public static boolean available(Context context) {
        try {
            return Class.forName("com.huawei.hms.update.provider.UpdateProvider") != null
                    && ServiceCheckUtil.isBroadcastReceiverAvailable(context, HuaweiReceiver.class) && isHmsAvailable(context) && EMUIValid();
        } catch (Throwable e) {
            Log.e(TAG, "available ", e);
            return false;
        }
    }

    public static boolean EMUIValid() {
        try {
            Class classType = Class.forName("android.os.SystemProperties");
            Method getMethod = classType.getDeclaredMethod("get", new Class[]{String.class});
            String buildVersion = (String) getMethod.invoke(classType, new Object[]{"ro.build.version.emui"});
            buildVersion = buildVersion.replaceAll("EmotionUI_", "");
            Version ver = new Version(buildVersion);
            Log.i(TAG, "EMUI " + buildVersion);
            return ver.compareTo(new Version("4.0")) >= 0; // 5.0以下emui 有各种问题
        } catch (Exception e) {
            Log.e(TAG, "getEMUI ", e);
            return false;
        }
    }

    private static boolean isHmsAvailable(Context context) {

        PackageManager pm = context.getPackageManager();

        try {

            PackageInfo pi = pm.getPackageInfo("com.huawei.hwid", 0);

            if (pi != null) {

                Log.i(TAG, "com.huawei.hwid code " + pi.versionCode + " ,version " + pi.versionName);
                return pi.versionCode >= 241300;
            }

        } catch (Exception e) {

            Log.e(TAG, "isHmsAvailable ", e);

        }
        return false;
    }

    @Override
    public String getToken() {
        return token;
    }

    @Override
    public String getType() {
        return "huawei";
    }

    @Override
    public void setToken(String token) {
        this.token = token;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy