getRunningTasks API从Android LL开始 权限收敛
来源:互联网 发布:freeswitch 源码 编辑:程序博客网 时间:2024/05/04 01:11
最近在做的一个小项目中,需要实时获取Activity栈顶以及它所属的App Process。
根据之前的了解,知道Android API有提供一个接口
public List<ActivityManager.RunningTaskInfo> getRunningTasks (int maxNum)
可以得到系统当前正在运行的Task列表,用maxNum限制要获取的数量(最近使用的最先取出)。
实际运行程序时,发现并不能实时获取当前的Activity栈顶。
(使用的是Android L的机器进行调试)
原因:
Android L开始,Google开始对getRunningTasks接口进行限制使用。
默认情况下,普通的三方应用(非系统应用不能使用该接口)
之前,使用该接口需要 android.permission.GET_TASKS
即使是自己开发的普通应用,只要声明该权限,即可以使用getRunningTasks接口。
但从L开始,这种方式以及废弃。
应用要使用该接口必须声明权限android.permission.REAL_GET_TASKS
而这个权限是不对三方应用开放的。(在Manifest里申请了也没有作用)
系统应用(有系统签名)可以调用该权限。
同时,查阅了ActivityManager里该接口的源码,对于普通的三方应用,应该只是允许eng版本的debug使用,而且google不建议在应用的核心逻辑里使用该接口。
在Android LL版本上使用该接口出现问题的话,可以参考以上内容。
Google这样做的原因还是出于安全考虑,对普通应用开发该接口可能会造成用户的隐私泄露。
- getRunningTasks API从Android LL开始 权限收敛
- getRunningTasks API从Android 5.0开始非系统App调用会出问题
- getRunningTasks
- getRunningTasks
- API 23之前的版本都是自动获取权限,而从 Android 6.0 开始添加了权限申请的需求,更加安全。
- 2011从Android开始
- 权限系统--敢不敢从建工程开始
- ExtJs自学教程:一切从API开始
- 从API开始理解QNX -- 消息传递
- 从API开始理解QNX -- 消息传递
- 从API开始理解QNX -- 系统脉冲
- android之从0开始
- ARCore:从Android Studio开始
- Android 6.0开始动态请求权限
- Android - API - android.Manifest.permission (权限)
- seam从登陆开始的安全权限框架理解
- android原理 :android 从低位开始读
- 学android: android-studio从main开始
- 网上购物快捷链接
- [BZOJ1038]ZJOI2008瞭望塔|半平面交
- bootstrap--模态框
- 黑马程序员——面向对象——继承
- 在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”声明?
- getRunningTasks API从Android LL开始 权限收敛
- java基础知识总结2
- 端口8676或mpi问题
- Java基础知识之面向对象(2)
- python学习笔记1 (python+django)
- Palindrome Number
- nodejs:遍历文件夹文件统计文件大小
- 用gdb调试mysql
- VS2010编写MFC程序,调整窗口大小和实现窗口最大化、最小化方法。