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

标签 android mdm

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

问题

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

我尝试过的(但失败了)

  1. How do I detect if an android app is launched? - Google 已在 Android L 中禁用。
  2. How to use UsageStatsManager? - android.permission.GET_TASKS 已废弃。
  3. How to make my app a device owner? - 无法以编程方式执行此命令。
  4. Knox Standard SDK

我想要什么

  • 用户应该无法访问列入黑名单的应用。我的应用应该在列入黑名单的应用前面启动(AppLock 相同)
  • 用户只能访问列入白名单的应用。
  • 我尝试了更多解决方案,但无法获得可以在所有可用操作系统/设备上运行的完美解决方案。
  • 我想要以编程方式/免费/为每个设备和操作系统提供解决方案

最佳答案

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

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

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

祝你好运!

关于android - 有没有办法获取所有可用操作系统当前运行的前台应用程序(包)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59907076/

相关文章:

c# - AuthenticateAsServer 不接受 PEM 格式的证书

android - NavigationDrawer布局元素不可点击

android - 通过 list 注册时广播接收器不工作

java - 即使检查是否为空,.iterator() 也会产生空指针异常

ios - Apple OTA 和 MDM 通过 Web header 注册

ios - 无线配置文件交付概念

iphone - 为什么我无法将应用程序添加到 LionServer 的 ProfileManager 中

iphone - 注册前获取iOS版本(无需代理)

android - 简单的 onListItemClick() 参数

android - 使用 RecyclerView 和 CardView 进行触摸反馈