1.获取ActivityManager

        
  1. /**
  2. *ReturnPackageManager.
  3. *
  4. *@paramcontextAContextoftheapplicationpackageimplementingthisclass.
  5. *@returnaPackageManagerinstance.
  6. */
  7. publicstaticActivityManagergetActivityManager(Contextcontext){
  8. return(ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
  9. }
2.获取安装的桌面程序。
        
  1. /**
  2. *Returnsalistoflauncherthatarerunningonthedevice.
  3. *
  4. *@paramcontextAContextoftheapplicationpackageimplementingthisclass.
  5. *@returnAlistwhichcontainsallthelauncherpackagename.Iftherearenolauncher,anempty
  6. *listisreturned.
  7. */
  8. publicstaticList<String>getLaunchers(Contextcontext){
  9. List<String>packageNames=newArrayList<String>();
  10. PackageManagerpackageManager=context.getPackageManager();
  11. Intentintent=newIntent(Intent.ACTION_MAIN);
  12. intent.addCategory(Intent.CATEGORY_HOME);
  13. List<ResolveInfo>resolveInfos=packageManager.queryIntentActivities(intent,PackageManager.MATCH_DEFAULT_ONLY);
  14. for(ResolveInforesolveInfo:resolveInfos){
  15. ActivityInfoactivityInfo=resolveInfo.activityInfo;
  16. if(activityInfo!=null){
  17. packageNames.add(resolveInfo.activityInfo.processName);
  18. packageNames.add(resolveInfo.activityInfo.packageName);
  19. }
  20. }
  21. returnpackageNames;
  22. }
3.判断桌面程序是否在栈顶,如果在栈顶说明当前界面是桌面。
        
  1. /**
  2. *Returnswhetherthelauncherwhichrunningonthedeviceisimportanceforeground.
  3. *
  4. *@paramcontextAContextoftheapplicationpackageimplementingthisclass.
  5. *@returnTrueiftheimportanceofthelauncherprocessis{@linkandroid.app.ActivityManager.RunningAppProcessInfo#IMPORTANCE_FOREGROUND}.
  6. *
  7. *
  8. */
  9. publicstaticbooleanisLauncherForeground(Contextcontext){
  10. booleanisLauncherForeground=false;
  11. ActivityManageractivityManager=getActivityManager(context);
  12. List<String>lanuchers=getLaunchers(context);
  13. List<RunningTaskInfo>runningTaskInfos=activityManager.getRunningTasks(1);
  14. if(lanuchers.contains(runningTaskInfos.get(0).baseActivity.getPackageName())){
  15. isLauncherForeground=true;
  16. }
  17. returnisLauncherForeground;
  18. }

更多相关文章

  1. Android应用程序退出实例
  2. Android安装应用程序出现“INSTALL_FAILED_CONTAINER_ERROR”错
  3. android 分享文字到其他应用程序
  4. Android:程序跳过登录界面直接进入主界面(自动登录)
  5. Android 指南针程序
  6. Android 截图程序实现 需要root权限
  7. Android -android程序最先加载的Activity

随机推荐

  1. 使用组件构建Android应用程序
  2. 31、android打开文件夹并列出里面的文件
  3. Bugly Android(安卓)这个错误 Cleartext
  4. tabhost放到底部显示
  5. socket连接
  6. android操作xml
  7. Using WebViews and JavaScript
  8. android有用网址
  9. Android应用程序消息处理机制(Looper、Han
  10. android 模拟器使用指导