有没有办法为所有可用的操作系统获取当前正在运行的前台应用程序(包)?

Dhr*_*ruv 5 android mdm

我知道,关于这个主题已经提出了太多问题,但并非所有操作系统/设备都支持这些问题

  1. 有没有办法为所有可用的操作系统获取当前正在运行的前台应用程序(包)?
  2. AppLock如何工作(它如何检测任何应用程序启动)?

我尝试过的(但失败了)

  1. 如何检测是否启动了 android 应用程序?- 谷歌已在 Android L 中禁用。
  2. 如何使用 UsageStatsManager?-android.permission.GET_TASKS被贬低了。
  3. 如何让我的应用成为设备所有者?- 无法以编程方式执行此命令。
  4. ?
  5. 诺克斯标准 SDK

我想要的是

  • 用户应该无法访问列入黑名单的应用程序。我的应用程序应该在黑名单应用程序前面启动(AppLock一样
  • 用户只能访问列入白名单的应用程序。
  • 我尝试了更多解决方案,但无法获得适用于所有可用操作系统/设备的完美解决方案。
  • 我想要以编程方式/免费/针对每个设备和操作系统的解决方案

Jim*_*Jim 1

您可以采用两种可以接受的方法来实现此目的,否则您可能会运气不好。

1) 让您的应用程序成为“启动器”应用程序。然后,用户将与您的应用程序进行交互,以便启动一般应用程序。基于通知的启动和其他类型的交互您可能无法跟踪,但我没有尝试过。

2) 让您的应用程序“假装”成为启动器应用程序。启动后,它会显示启动器类型屏幕。然后,您必须通过检查您的应用程序是否在后台并将其置于前台(如果是)来处理按“home”的尝试。这不是一件容易的任务 - 很可能你会遇到错误等,但似乎有可能(我只知道确定你的应用程序是否“在后台”可能很棘手,因为对话框和通知可以占据前台,但你不想忽略那些(我认为大多数时候)。

祝你好运!