如何在 Android 中从单个应用程序启动信息亭应用程序

How to launch kiosk app from single app in Android

我有一个 Android 设备正在 运行 连接一个应用程序。此应用程序在启动时启动,并且是用户唯一能够看到的应用程序。

但是一旦此应用程序 运行ning,我希望能够通过单击此“启动”应用程序上的按钮来启动另一个应用程序,以在“kiosk”中启动第二个应用程序的方式"模式,让用户无法返回,无法回家,无法收到任何通知,等等,直到某个动作完成。

为此,我尝试遵循锁定模式 Google 文档 here

但我不清楚,当它告诉“DPC 必须允许应用程序...”时,这段代码应该放在初始应用程序(启动时的应用程序)中,或者放在我想要的应用程序中 运行 在 kiosk 模式下?

希望能提供更详细的信息。

讲述时的部分:

// Set an option to turn on lock task mode when starting the activity.
val options = ActivityOptions.makeBasic()
options.setLockTaskEnabled(true)

// Start our kiosk app's main activity with our lock task mode option.
val packageManager = context.packageManager
val launchIntent = packageManager.getLaunchIntentForPackage(KIOSK_PACKAGE)
if (launchIntent != null) {
    context.startActivity(launchIntent, options.toBundle())
}

我假设确实要放在“启动”应用程序上。

是的,那部分将驻留在您的启动应用程序中,这应该适合您,但您也可以将第二个应用程序包名称添加到

DevicePolicyManager.setLockTaskPackages()

如果您不想尝试如下所示的方法:

private val YOUR_BOOT_APP_PACKAGE_NAME = "your.boot.app.packagename"
private val YOUR_SECOND_APP_PACKAGE_NAME = "your.second.app.packagename"
private val APP_PACKAGES = arrayOf(YOUR_BOOT_APP_PACKAGE_NAME, YOUR_SECOND_APP_PACKAGE_NAME)
mDevicePolicyManager.setLockTaskPackages(mAdminComponentName, APP_PACKAGES)