Android获取栈顶Activity/查看应用使用情况(适配Android6.0)

本文介绍了自Android 6.0以来如何获取栈顶Activity和应用使用情况,包括5.0后废弃`getRunningTasks()`方法,转而使用`getRunningAppProcesses()`和`UsageStatsManager`。同时提供了在AndroidManifest中添加权限和启动授权页面的方法。还提到了一个开源库AndroidProcesses,用于6.0及以下版本获取运行程序,并分享了一种获取栈顶元素的不完全准确方法。

内推

【长期有效】欢迎加入字节跳动我的团队:内推链接

Android 6.0以来对权限管理加强。
在5.0以下通过ActivityManager类的getRunningTasks()获取当前打开的所有应用程序 。
在5.0版本之后废弃了getRunningTasks()方法,意味着我们在5.0以后不能通过该方法获取正在运行的应用程序,google在5.0又提供类新的api,可以通过ActivityManager的getRunningAppProcesses()方法获取正在运行的应用程序 。
然后在5.1的版本发布后getRunningAppProcesses()已经获取不到正在运行的服务,在5.0版本google提供了一个UsageStatsManager类,通过这个类可以获取到应用程序的运行情况,该类的使用方法如下:
1.在AndroidManifest文件中添加权限:
uses-permission android:name=“android.permission.PACKAGE_USAGE_STATS”
2.启动授权页面,需要用户授权
Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS);
context.startActivity(intent);
调用相关代码获取正在运行的服务:
UsageStatsManager usm = (UsageStatsManager) context.getSystemService(Context.USAGE_STATS_SERVICE);
Calendar calendar = Calendar.getInstance();
long endTime = calendar.getTimeInMillis();
calendar.add(Calendar.Y

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值