4399游戏盒 v7.2.1.31版本的 MD5 值为:951717f45e3fda95c8a358caf4ca93e1

以下内容为反编译后的 AppUtils.java 源代码,内容仅作参考


package com.framework.utils;

import android.app.Activity;
import android.app.ActivityManager;
import android.app.Application;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Build;
import android.os.Handler;
import android.os.Looper;
import android.os.Process;
import android.text.TextUtils;
import java.util.Iterator;
import java.util.List;
import timber.log.Timber;

public class AppUtils {
    protected static final String QQ_PACKAGE_NAME = "com.tencent.mobileqq";
    static ApplicationInfo applicationMetaInfo;
    static PackageInfo packageInfo;
    static volatile Handler uiThreadHandler;

    public static String getRunningPackageName() {
        String str = "";
        try {
            if (Build.VERSION.SDK_INT >= 21) {
                str = UsageStatsUtils.getRunningPackageName(AH.getApplication());
            } else {
                List<ActivityManager.RunningTaskInfo> runningTasks = ((ActivityManager) AH.getApplication().getSystemService("activity")).getRunningTasks(1);
                if (runningTasks != null && runningTasks.size() > 0) {
                    str = runningTasks.get(0).topActivity.getPackageName();
                }
            }
        } catch (Throwable th) {
            Timber.e(th, th.toString(), new Object[0]);
        }
        return str;
    }

    public static Drawable getRunningPackageIcon(String str) {
        try {
            PackageManager packageManager = AH.getApplication().getPackageManager();
            if (packageManager == null) {
                return null;
            }
            return packageManager.getApplicationIcon(str);
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
            return null;
        } catch (Exception e2) {
            e2.printStackTrace();
            return null;
        }
    }

    public static boolean checkIntentStartsWith(Activity activity, String str) {
        Intent intent = activity.getIntent();
        return !TextUtils.isEmpty(intent.getAction()) && intent.getAction().startsWith(str);
    }

    public static Drawable getIconDrawableByPackageName(String str) {
        try {
            PackageManager packageManager = AH.getApplication().getPackageManager();
            if (packageManager != null) {
                return packageManager.getApplicationIcon(str);
            }
            return null;
        } catch (PackageManager.NameNotFoundException e) {
            Timber.w(e);
            return null;
        } catch (Throwable th) {
            Timber.w(th);
            return null;
        }
    }

    public static Bitmap getIconBitmapByPackageName(String str) {
        return BitmapUtils.drawable2Bitmap(getIconDrawableByPackageName(str));
    }

    public static void killCurrentProcess() {
        Application application = AH.getApplication();
        Intent intent = new Intent("android.intent.action.MAIN");
        intent.addCategory("android.intent.category.HOME");
        intent.setFlags(268435456);
        application.startActivity(intent);
        System.exit(0);
    }

    public static boolean checkCurrentProcess(String str) {
        List<ActivityManager.RunningAppProcessInfo> runningAppProcesses = ((ActivityManager) AH.getApplication().getSystemService("activity")).getRunningAppProcesses();
        if (runningAppProcesses == null) {
            return false;
        }
        int myPid = Process.myPid();
        for (ActivityManager.RunningAppProcessInfo runningAppProcessInfo : runningAppProcesses) {
            if (runningAppProcessInfo.pid == myPid && str.equals(runningAppProcessInfo.processName)) {
                return true;
            }
        }
        return false;
    }

    public static String getBrowserPackages() {
        Intent intent = new Intent("android.intent.action.VIEW");
        intent.setData(Uri.parse("http://www.google.com"));
        List<ResolveInfo> queryIntentActivities = AH.getApplication().getPackageManager().queryIntentActivities(intent, 0);
        StringBuilder sb = new StringBuilder();
        Iterator<ResolveInfo> it = queryIntentActivities.iterator();
        while (it.hasNext()) {
            sb.append(it.next().activityInfo.packageName);
            sb.append(",");
        }
        if (isQQInstalled(AH.getApplication())) {
            sb.append("com.tencent.mobileqq");
        }
        return sb.toString();
    }

    public static boolean isQQInstalled(Context context) {
        return context.getPackageManager().getPackageInfo("com.tencent.mobileqq", 0) != null;
    }

    public static String getCurProcessName(Context context) {
        return ProcessUtil.getCurProcessName(context);
    }

    public static boolean isAfterP() {
        return Build.VERSION.SDK_INT > 27;
    }

    public static ApplicationInfo getApplicationMetaInfo() {
        ApplicationInfo applicationInfo = applicationMetaInfo;
        if (applicationInfo != null) {
            return applicationInfo;
        }
        try {
            Application application = AH.getApplication();
            applicationMetaInfo = application.getPackageManager().getApplicationInfo(application.getPackageName(), 128);
            return applicationMetaInfo;
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
            return null;
        }
    }

    public static PackageInfo getPackageInfo() {
        PackageInfo packageInfo2 = packageInfo;
        if (packageInfo2 != null) {
            return packageInfo2;
        }
        try {
            Application application = AH.getApplication();
            packageInfo = application.getPackageManager().getPackageInfo(application.getPackageName(), 0);
            return packageInfo;
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
            return null;
        }
    }

    public static void runOnUiThread(Runnable runnable) {
        if (uiThreadHandler == null) {
            uiThreadHandler = new Handler(Looper.getMainLooper());
        }
        uiThreadHandler.post(runnable);
    }

    public static void runOnUiThread(Runnable runnable, long j) {
        if (uiThreadHandler == null) {
            uiThreadHandler = new Handler(Looper.getMainLooper());
        }
        uiThreadHandler.postDelayed(runnable, j);
    }
}