如何使用非启动器应用程序启用信息亭模式?

How to enable kiosk mode with non-launcher app?

在我的自定义 DPC app(配置为设备所有者)中,我想在信息亭模式下设置第三方应用程序。

我用 DevicePolicyManager.addPersistentPreferredActivity() 做了一些测试,但它似乎只有在目标应用程序是启动器时才有效,即如果提供的组件是支持 HOME 和 DEFAULT 意图类别的 activity。但我需要它才能与任何应用程序一起使用。

Google DPC Android Device Policy can make it, as explained in "Apps that don't support lock task mode" 在策略的 persistentPreferredActivities 部分仅提供程序包名称(不是完整的 activity 组件名称)。因此,我假设可以在我的 DPC 中执行此操作,但是如何?

如前所述,当 lock mode 不受支持时,没有官方方法可以使用策略将应用程序锁定为信息亭模式。

addPersistentPreferredActivity() 方法仅为这些意图设置默认处理程序,但它们也可以被覆盖。

我找到的解决方案是将 DPC 设置为默认启动器,然后 auto-start 来自 DPC 的 third-party 应用程序。