<span style="white-space:pre"> </span>/**
<span style="white-space:pre"> </span>*获取任务栈顶的应用的包名,然后判断是否在Launcher列表里
<span style="white-space:pre"> </span>*/
<span style="white-space:pre"> </span>private static boolean isLauncherRunnig(Context context) {
ActivityManager am = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> list = am.getRunningTasks(1);// 得到当前正在运行的任务
RunningTaskInfo runningTaskInfo = null;
if (list != null && list.size() > 0) {
runningTaskInfo = (RunningTaskInfo) list.get(0);
}
ComponentName componentName = null;
if (runningTaskInfo != null) {
componentName = runningTaskInfo.topActivity;
}
if (componentName == null) {
return false;
}
List<String> homelist = getAllTheLauncher(context);
boolean result = homelist.contains(componentName.getPackageName());
return result;
}
<span style="white-space:pre"> </span>/**
<span style="white-space:pre"> </span>*获取设备上安装的所有Launcher应用
<span style="white-space:pre"> </span>*/
private static List<String> getAllTheLauncher(Context context) {
List<String> names = new ArrayList<String>();
PackageManager packageManager = context.getPackageManager();
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
List<ResolveInfo> resolveInfo = packageManager.queryIntentActivities(
intent, PackageManager.MATCH_DEFAULT_ONLY);
for (ResolveInfo ri : resolveInfo) {
names.add(ri.activityInfo.packageName);
}
return names;
}