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