package com.moral.yunfushao.utils;
|
|
import android.app.ActivityManager;
|
import android.content.ComponentName;
|
import android.content.Context;
|
import android.content.Intent;
|
import android.content.pm.PackageInfo;
|
import android.content.pm.PackageManager;
|
import android.content.pm.ResolveInfo;
|
import android.util.Log;
|
|
import java.util.List;
|
|
/**
|
* @author : chenqi.
|
* @e_mail : 1650699704@163.com.
|
* @create_time : 2018/12/29.
|
* @Package_name: pregnancy_guard_android
|
*/
|
public class AppUtil {
|
|
/**
|
* 判断应用是否在后台
|
*
|
* @param context
|
* @return
|
*/
|
public static boolean isBackground(Context context) {
|
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
|
List<ActivityManager.RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
|
for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) {
|
if (appProcess.processName.equals(context.getPackageName())) {
|
if (appProcess.importance == ActivityManager.RunningAppProcessInfo.IMPORTANCE_BACKGROUND) {
|
Log.i("后台", appProcess.processName);
|
return true;
|
} else {
|
Log.i("前台", appProcess.processName);
|
return false;
|
}
|
}
|
}
|
return false;
|
}
|
|
/**
|
* 判断应用是否在运行
|
*
|
* @param context
|
* @return
|
*/
|
public static boolean isApplicationRunning(Context context) {
|
ActivityManager am = (ActivityManager) context
|
.getSystemService(Context.ACTIVITY_SERVICE);
|
List<ActivityManager.RunningAppProcessInfo> appProcesses = am.getRunningAppProcesses();
|
for (ActivityManager.RunningAppProcessInfo appProcess : appProcesses) {
|
if (appProcess.processName.equals(context.getPackageName())) {
|
return false;
|
}
|
}
|
return true;
|
}
|
|
/**
|
* 打开应用
|
*
|
* @param context
|
* @param packageName
|
*/
|
public static void openApp(Context context, String packageName) {
|
try {
|
PackageManager pm = context.getPackageManager();
|
PackageInfo pi = pm.getPackageInfo(packageName, 0);
|
Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
|
resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
|
resolveIntent.setPackage(pi.packageName);
|
List<ResolveInfo> apps = pm.queryIntentActivities(resolveIntent, 0);
|
ResolveInfo ri = apps.iterator().next();
|
if (ri != null) {
|
String packagename = ri.activityInfo.packageName;
|
String className = ri.activityInfo.name;
|
Intent intent = new Intent(Intent.ACTION_MAIN);
|
intent.addCategory(Intent.CATEGORY_LAUNCHER);
|
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);//Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
|
ComponentName cn = new ComponentName(packagename, className);
|
intent.setComponent(cn);
|
context.startActivity(intent);
|
}
|
} catch (PackageManager.NameNotFoundException e) {
|
e.printStackTrace();
|
}
|
}
|
}
|