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); } } }