原创作品,允许转载,转载时请务必以超链接形式标明文章
原始出处 、作者信息和本声明。否则将追究法律责任。
http://jackyanngo.blog.51cto.com/5263823/1053240
2.获取安装的桌面程序。
- /**
- * Return PackageManager.
- *
- * @param context A Context of the application package implementing this class.
- * @return a PackageManager instance.
- */
- public static ActivityManager getActivityManager(Context context){
- return (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
- }
3.判断桌面程序是否在栈顶,如果在栈顶说明当前界面是桌面。
- /**
- * Returns a list of launcher that are running on the device.
- *
- * @param context A Context of the application package implementing this class.
- * @return A list which contains all the launcher package name.If there are no launcher, an empty
- * list is returned.
- */
- public static List<String> getLaunchers(Context context){
- List<String> packageNames = new ArrayList<String>();
- PackageManager packageManager = context.getPackageManager();
- Intent intent = new Intent(Intent.ACTION_MAIN);
- intent.addCategory(Intent.CATEGORY_HOME);
- List<ResolveInfo> resolveInfos = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
- for(ResolveInfo resolveInfo:resolveInfos){
- ActivityInfo activityInfo = resolveInfo.activityInfo;
- if(activityInfo != null) {
- packageNames.add(resolveInfo.activityInfo.processName);
- packageNames.add(resolveInfo.activityInfo.packageName);
- }
- }
- return packageNames;
- }
- /**
- * Returns whether the launcher which running on the device is importance foreground.
- *
- * @param context A Context of the application package implementing this class.
- * @return True if the importance of the launcher process is {@link android.app.ActivityManager.RunningAppProcessInfo#IMPORTANCE_FOREGROUND}.
- *
- *
- */
- public static boolean isLauncherForeground(Context context){
- boolean isLauncherForeground = false;
- ActivityManager activityManager = getActivityManager(context);
- List<String> lanuchers = getLaunchers(context);
- List<RunningTaskInfo> runningTaskInfos = activityManager.getRunningTasks(1);
- if(lanuchers.contains(runningTaskInfos.get(0).baseActivity.getPackageName())) {
- isLauncherForeground = true;
- }
- return isLauncherForeground;
- }