安卓5.0获取当前应用的栈顶Activity

djshichaoren 2015-10-19 11:25:36
1.在5.0之前可以用List<ActivityManager.RunningTaskInfo> runTaskInfos = activityManager.getRunningTasks(1);但是5.0以后不行了
2.在5.0一开始的时候可以用List<ActivityManager.RunningAppProcessInfo> appList = activityManager.getRunningAppProcesses();但是5.0后来也不能用了
3.但是我相信还是有方法的,《360 Security》和《智能应用锁》这两款应用,它们需要用户在 “设置-->安全-->有权查看使用情况” 上同意就可以监视顶层的Activity,哪位大神知道它是怎么申请出现在“有权查看使用情况”页面的?用户同意之后又调用了什么API获取栈顶Activity?
版主,可以把这么优秀的问题置顶吗??
...全文
7072 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
解决办法:https://github.com/wenmingvs/AndroidProcess
djshichaoren 2015-12-12
  • 打赏
  • 举报
回复
引用 8 楼 GreenVesture 的回复:
这个权限是针对UsageStatsManager的,开了之后可以用UsageStatsManager拿到前台应用
引用 3 楼 chaozhung 的回复:
我针对这个问题专门写过一个帖子 http://blog.csdn.net/chaozhung_no_l/article/details/49490401,,楼主看下 可以满足不
原来是我重新部署的时候,设置里面的权限关闭了,现在可以了,谢谢你们GreenVesture 、chaozhung !!
djshichaoren 2015-12-12
  • 打赏
  • 举报
回复
引用 8 楼 GreenVesture 的回复:
这个权限是针对UsageStatsManager的,开了之后可以用UsageStatsManager拿到前台应用
引用 7 楼 chaozhung 的回复:
5.0以后不能用.getRunningTasks(1)了
private String getRunningApp() { long ts = System.currentTimeMillis(); List<UsageStats> queryUsageStats = usageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_BEST, ts - 2000, ts); if (queryUsageStats == null || queryUsageStats.isEmpty()) { return null; } UsageStats recentStats = null; for (UsageStats usageStats : queryUsageStats) { if (recentStats == null || recentStats.getLastTimeUsed() < usageStats.getLastTimeUsed()) { recentStats = usageStats; } } return recentStats.getPackageName(); } <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" tools:ignore="ProtectedPermissions" />我也加上了 我使用了UsageStatsManager,但得到的queryUsageStats 总是空的,size总是0,是怎么回事?
djshichaoren 2015-12-11
  • 打赏
  • 举报
回复
引用 3 楼 chaozhung的回复:
我针对这个问题专门写过一个帖子 http://blog.csdn.net/chaozhung_no_l/article/details/49490401,,楼主看下 可以满足不
把权限打开以后可以获得package名了,但是无论打开什么应用,都只获得com.android.launcher启动器的包名<br /> <br /> 请问,是代码的问题吗?<br /> List<ActivityManager.RunningTaskInfo> runTaskInfos = activityManager.getRunningTasks(1);<br /> runningTaskInfo = runTaskInfos.get(0); //拿到当前运行的任务栈            <br /> runningApp = runningTaskInfo.topActivity.getPackageName();//拿到要运行的Activity的包名<br /> <br /> 感谢!
djshichaoren 2015-12-11
  • 打赏
  • 举报
回复
引用 3 楼 chaozhung 的回复:
我针对这个问题专门写过一个帖子 http://blog.csdn.net/chaozhung_no_l/article/details/49490401,,楼主看下 可以满足不
把权限打开以后可以获得package名了,但是无论打开什么应用,都只获得com.android.launcher启动器的包名 请问,是代码的问题吗? List<ActivityManager.RunningTaskInfo> runTaskInfos = activityManager.getRunningTasks(1); runningTaskInfo = runTaskInfos.get(0); //拿到当前运行的任务栈 runningApp = runningTaskInfo.topActivity.getPackageName();//拿到要运行的Activity的包名 感谢!
djshichaoren 2015-12-11
  • 打赏
  • 举报
回复
把权限打开以后可以获得package名了,但是无论打开什么应用,都只获得com.android.launcher启动器的包名 请问,是代码的问题吗? List<ActivityManager.RunningTaskInfo> runTaskInfos = activityManager.getRunningTasks(1); runningTaskInfo = runTaskInfos.get(0); //拿到当前运行的任务栈 runningApp = runningTaskInfo.topActivity.getPackageName();//拿到要运行的Activity的包名 感谢!
GreenVesture 2015-12-11
  • 打赏
  • 举报
回复
这个权限是针对UsageStatsManager的,开了之后可以用UsageStatsManager拿到前台应用
chaozhung 2015-12-11
  • 打赏
  • 举报
回复
引用 5 楼 djshichaoren 的回复:
[quote=引用 3 楼 chaozhung的回复:]我针对这个问题专门写过一个帖子 http://blog.csdn.net/chaozhung_no_l/article/details/49490401,,楼主看下 可以满足不
把权限打开以后可以获得package名了,但是无论打开什么应用,都只获得com.android.launcher启动器的包名<br /> <br /> 请问,是代码的问题吗?<br /> List<ActivityManager.RunningTaskInfo> runTaskInfos = activityManager.getRunningTasks(1);<br /> runningTaskInfo = runTaskInfos.get(0); //拿到当前运行的任务栈            <br /> runningApp = runningTaskInfo.topActivity.getPackageName();//拿到要运行的Activity的包名<br /> <br /> 感谢![/quote] 5.0以后不能用.getRunningTasks(1)了
chaozhung 2015-11-06
  • 打赏
  • 举报
回复
我针对这个问题专门写过一个帖子 http://blog.csdn.net/chaozhung_no_l/article/details/49490401,,楼主看下 可以满足不
scnuxisan225 2015-10-26
  • 打赏
  • 举报
回复
用这个UsageStatsManager解决,Android官方提供的 不过我寻求的是其他方案。。。坐等
parcool 2015-10-20
  • 打赏
  • 举报
回复
同问,之前没搞定这个问题我就放弃了

80,472

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧