为了账号安全,请及时绑定邮箱和手机立即绑定

Android 5.1.1及更高版本 - getRunningAppProcesses()

Android 5.1.1及更高版本 - getRunningAppProcesses()

慕标5832272 2019-07-23 17:54:10
Android 5.1.1及更高版本 - getRunningAppProcesses()仅返回我的应用程序包 问问题谷歌似乎最终关闭了获取当前前台应用程序包的所有大门。在Lollipop更新之后,getRunningTasks(int maxNum)由于这个答案,我使用此代码从Lollipop获取前台应用程序包:final int PROCESS_STATE_TOP = 2;RunningAppProcessInfo currentInfo = null;Field field = null;try {     field = RunningAppProcessInfo.class.getDeclaredField("processState");} catch (Exception ignored) { }ActivityManager am = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE);List<RunningAppProcessInfo> appList = am.getRunningAppProcesses();for (RunningAppProcessInfo app : appList) {     if (app.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND &&         app.importanceReasonCode == 0 ) {         Integer state = null;         try {             state = field.getInt( app );         } catch (Exception ignored) {         }         if (state != null && state == PROCESS_STATE_TOP) {             currentInfo = app;             break;         }     }}return currentInfo;看起来,Android 5.1.1及以上版本(6.0 Marshmallow)也被杀死getRunningAppProcesses()了。它现在返回您自己的应用程序包的列表。UsageStatsManager我们可以使用此处所述的新UsageStatsManagerAPI,但它不适用于所有应用程序。某些系统应用程序将返回相同的包com.google.android.googlequicksearchboxAccessibilityService(2017年12月:将被禁止供Google使用)一些应用程序使用AccessibilityService(如此处所示)但它有一些缺点。有没有其他方法来获取当前正在运行的应用程序包?
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 2589 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信