Android判断当前界面是否为桌面
来源:互联网 发布:怎么用sql语句降序排列 编辑:程序博客网 时间:2024/04/28 01:39
获取当前界面是否为桌面,需要用到ActivityManager.getRunningTasks(1)
这个方法,首先看一下这个方法的官方解释。
/***@deprecated As of {@link android.os.Build.VERSION_CODES#LOLLIPOP}, this method* is no longer available to third party* applications: the introduction of document-centric recents means* it can leak person information to the caller. For backwards compatibility,* it will still retu rn a small subset of its data: at least the caller's* own tasks, and possibly some other tasks* such as home that are known to not be sensitive.
大致意思就是指,自从Android21之后该方法只能获取到自己应用的信息,获取不到其他包信息了,如果我们只需要判断我们自己的应用是否处于桌面,进行相应逻辑的处理是可以的。如果需要监听home键可以查看我的上篇Home监听。
照例,看一下判断桌面代码:
public static boolean isHomes() { try { ActivityManager mActivityManager = (ActivityManager)CallBlockerApplication.getInstance() .getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningTaskInfo> rti = mActivityManager.getRunningTasks(1); List<String> strs = getHomes(); if(strs != null && strs.size() > 0 && rti != null && rti.size() > 0){ return strs.contains(rti.get(0).topActivity.getPackageName()); }else{ return false; } } catch (SecurityException e) { e.printStackTrace(); return false; } } /** * 获得属于桌面的应用的应用包名称 * @return 返回包含所有包名的字符串列表 */ public static List<String> getHomes() { List<String> names = new ArrayList<String>(); try { PackageManager packageManager = CallBlockerApplication.getInstance().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; } catch (Exception e) { e.printStackTrace(); return names; } }
ok!!!
阅读全文
0 0
- Android判断当前界面是否为桌面
- [Android]判断当前界面是否是桌面
- Android判断当前界面是否是桌面
- android判断当前界面是否是桌面(主页)
- 【转】android判断当前界面是否是桌面(主页)
- Android判断当前界面是否是桌面(主页)
- Android 判断当前的界面是否是桌面的方法
- android判断当前界面是否是桌面(主页)
- Android 判断当前的界面是否是桌面的方法
- android 小技巧之 --- 判断当前界面是否是桌面
- 判断当前界面是否是桌面
- 判断当前界面是否是桌面
- Symbian:判断当前界面为桌面 .
- 判断当前显示是否为桌面
- Android: 判断当前是否为锁屏界面(Keyguard)
- Android: 判断当前是否为锁屏界面(Keyguard)
- android 判断当前是否在桌面
- Android中 如何判断现在所处的界面是否为home主桌面
- @PathVariable和@RequestParam的区别
- python知识点小结
- jQuery Mobile中文本输入域input、textarea的data-*选项
- 为什么说“按月订购”和“无人货架”本质上是一样的?
- 实现ASM磁盘的两种方式:asmlib、udev
- Android判断当前界面是否为桌面
- Gerrit+Ldap登陆验证
- 30分钟LINQ教程
- 知识学习一《4-20mA电流环通信》
- (Stochastic gradient descent)和 (Batch gradient descent )的对比
- 版本管理-SVN爆红详细解决方案及可能带来的隐患思考(二)
- CSS盒子模型以及CSS3中的box-sizing
- 各种小马小结
- jQuery Mobile中面板panel的data-*选项