[Android]判断当前界面是否是桌面
16lz
2021-01-23
1.获取ActivityManager
2.获取安装的桌面程序。
- /**
- *ReturnPackageManager.
- *
- *@paramcontextAContextoftheapplicationpackageimplementingthisclass.
- *@returnaPackageManagerinstance.
- */
- publicstaticActivityManagergetActivityManager(Contextcontext){
- return(ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
- }
3.判断桌面程序是否在栈顶,如果在栈顶说明当前界面是桌面。
- /**
- *Returnsalistoflauncherthatarerunningonthedevice.
- *
- *@paramcontextAContextoftheapplicationpackageimplementingthisclass.
- *@returnAlistwhichcontainsallthelauncherpackagename.Iftherearenolauncher,anempty
- *listisreturned.
- */
- publicstaticList<String>getLaunchers(Contextcontext){
- List<String>packageNames=newArrayList<String>();
- PackageManagerpackageManager=context.getPackageManager();
- Intentintent=newIntent(Intent.ACTION_MAIN);
- intent.addCategory(Intent.CATEGORY_HOME);
- List<ResolveInfo>resolveInfos=packageManager.queryIntentActivities(intent,PackageManager.MATCH_DEFAULT_ONLY);
- for(ResolveInforesolveInfo:resolveInfos){
- ActivityInfoactivityInfo=resolveInfo.activityInfo;
- if(activityInfo!=null){
- packageNames.add(resolveInfo.activityInfo.processName);
- packageNames.add(resolveInfo.activityInfo.packageName);
- }
- }
- returnpackageNames;
- }
- /**
- *Returnswhetherthelauncherwhichrunningonthedeviceisimportanceforeground.
- *
- *@paramcontextAContextoftheapplicationpackageimplementingthisclass.
- *@returnTrueiftheimportanceofthelauncherprocessis{@linkandroid.app.ActivityManager.RunningAppProcessInfo#IMPORTANCE_FOREGROUND}.
- *
- *
- */
- publicstaticbooleanisLauncherForeground(Contextcontext){
- booleanisLauncherForeground=false;
- ActivityManageractivityManager=getActivityManager(context);
- List<String>lanuchers=getLaunchers(context);
- List<RunningTaskInfo>runningTaskInfos=activityManager.getRunningTasks(1);
- if(lanuchers.contains(runningTaskInfos.get(0).baseActivity.getPackageName())){
- isLauncherForeground=true;
- }
- returnisLauncherForeground;
- }
更多相关文章
- Android应用程序退出实例
- Android安装应用程序出现“INSTALL_FAILED_CONTAINER_ERROR”错
- android 分享文字到其他应用程序
- Android:程序跳过登录界面直接进入主界面(自动登录)
- Android 指南针程序
- Android 截图程序实现 需要root权限
- Android -android程序最先加载的Activity