智能工厂.apk(点击下载) / g.java


package cn.jiguang.ao;

import android.app.Activity;
import android.app.ActivityManager;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.ContentProvider;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ComponentInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.os.Process;
import android.text.TextUtils;
import cn.jiguang.an.b;
import cn.jiguang.internal.JConstants;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class g {
    private static String a;
    private static String b;
    private static String c;

    private static ComponentInfo a(Context context, String str, Class<?> cls) {
        ComponentInfo[] componentInfoArr;
        if (context == null || TextUtils.isEmpty(str) || cls == null) {
            b.e("JDyAndroidUtils", "Action - hasComponent, invalide param, context:" + context + ",packageName:" + str + ",cls:" + cls);
            return null;
        }
        try {
            int i = Service.class.isAssignableFrom(cls) ? 4 : BroadcastReceiver.class.isAssignableFrom(cls) ? 2 : Activity.class.isAssignableFrom(cls) ? 1 : ContentProvider.class.isAssignableFrom(cls) ? 8 : 0;
            PackageInfo packageInfo = context.getPackageManager().getPackageInfo(str, i);
            if (i == 4) {
                componentInfoArr = packageInfo.services;
            } else if (i != 8) {
                switch (i) {
                    case 1:
                        componentInfoArr = packageInfo.activities;
                        break;
                    case 2:
                        componentInfoArr = packageInfo.receivers;
                        break;
                    default:
                        componentInfoArr = null;
                        break;
                }
            } else {
                componentInfoArr = packageInfo.providers;
            }
            if (componentInfoArr == null) {
                return null;
            }
            for (ComponentInfo componentInfo : componentInfoArr) {
                try {
                    if (cls.isAssignableFrom(Class.forName(componentInfo.name))) {
                        return componentInfo;
                    }
                } catch (Throwable unused) {
                }
            }
            return null;
        } catch (Throwable th) {
            b.f("JDyAndroidUtils", "hasComponent error:" + th);
        }
    }

    public static String a(Context context) {
        Context context2;
        if (!TextUtils.isEmpty(a)) {
            return a;
        }
        ActivityManager activityManager = null;
        if (context != null) {
            try {
                context2 = context.getApplicationContext();
            } catch (Throwable th) {
                b.f("JDyAndroidUtils", "#unexcepted - getCurProcessName failed:" + th.getMessage());
            }
        } else {
            context2 = null;
        }
        if (context2 != null) {
            activityManager = (ActivityManager) context2.getSystemService("activity");
        }
        if (activityManager != null) {
            int myPid = Process.myPid();
            Iterator<ActivityManager.RunningAppProcessInfo> it = activityManager.getRunningAppProcesses().iterator();
            while (true) {
                if (!it.hasNext()) {
                    break;
                }
                ActivityManager.RunningAppProcessInfo next = it.next();
                if (next.pid == myPid) {
                    a = next.processName;
                    break;
                }
            }
        }
        return a;
    }

    private static String a(Context context, String str) {
        try {
            return context.getPackageManager().getServiceInfo(new ComponentName(context.getPackageName(), str), 128).processName;
        } catch (Throwable unused) {
            return "";
        }
    }

    private static List<String> a(Context context, Intent intent, String str) {
        ArrayList arrayList = new ArrayList();
        try {
            List<ResolveInfo> queryIntentServices = context.getPackageManager().queryIntentServices(intent, 0);
            PackageManager packageManager = context.getPackageManager();
            for (ResolveInfo resolveInfo : queryIntentServices) {
                if (resolveInfo.serviceInfo != null) {
                    String str2 = resolveInfo.serviceInfo.name;
                    if (!TextUtils.isEmpty(str2)) {
                        boolean z = true;
                        if (!TextUtils.isEmpty(str) && packageManager.checkPermission(str, resolveInfo.activityInfo.packageName) != 0) {
                            z = false;
                        }
                        if (z) {
                            arrayList.add(str2);
                        }
                    }
                }
            }
        } catch (Throwable unused) {
        }
        return arrayList;
    }

    public static boolean b(Context context) {
        if (context == null) {
            return false;
        }
        String a2 = a(context);
        if (!TextUtils.isEmpty(a2)) {
            return a2.equals(c(context));
        }
        return false;
    }

    public static String c(Context context) {
        String str = c;
        if (str != null) {
            return str;
        }
        String d = d(context);
        if (TextUtils.isEmpty(d)) {
            c = "";
        } else {
            c = a(context, d);
            b.b("JDyAndroidUtils", "user serviceProcess is:" + c);
        }
        return c;
    }

    private static String d(Context context) {
        ComponentInfo a2;
        Class<?> cls = null;
        try {
            if (b != null) {
                return b;
            }
            cls = Class.forName("cn.jpush.android.service.JCommonService");
            Intent intent = new Intent();
            intent.setAction(JConstants.USER_SERVICE_ACTION);
            intent.setPackage(context.getPackageName());
            List<String> a3 = a(context, intent, "");
            if (a3 != null && a3.size() >= 1 && cls.isAssignableFrom(Class.forName(a3.get(0)))) {
                b = a3.get(0);
                b.d("JDyAndroidUtils", "found userServiceClass :" + b + " by getCommonServiceNames");
            }
            if (TextUtils.isEmpty(b) && (a2 = a(context, context.getPackageName(), cls)) != null) {
                b = a2.name;
                b.d("JDyAndroidUtils", "found userServiceClass :" + b + " by getComponentInfo");
            }
            if (TextUtils.isEmpty(b)) {
                b = "";
            }
            return b;
        } catch (Throwable th) {
            b.b("JDyAndroidUtils", "getUserServiceClass failed:" + th);
        }
    }
}