如何从 Android 中的单个应用程序启动自助服务终端应用程序

Posted

技术标签:

【中文标题】如何从 Android 中的单个应用程序启动自助服务终端应用程序【英文标题】:How to launch kiosk app from single app in Android 【发布时间】:2021-07-15 06:45:11 【问题描述】:

我有一台运行单个应用程序的 android 设备。此应用程序在启动时启动,并且是用户唯一可以看到的应用程序。

但是一旦这个应用程序运行,我希望能够通过单击这个“启动”应用程序上的按钮来启动另一个应用程序,这样第二个应用程序在“信息亭”模式下启动,以便用户在某些操作完成之前,无法返回、无法回家、无法收到任何通知等。

为此,我正在尝试按照 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())

我认为这确实是放在“启动”应用程序上。

【问题讨论】:

在哪里可以找到启动应用程序? 【参考方案1】:

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

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)

【讨论】:

以上是关于如何从 Android 中的单个应用程序启动自助服务终端应用程序的主要内容,如果未能解决你的问题,请参考以下文章

基于安卓的自助求助系统急救呼叫app(android毕业设计)

如何从android中的单个查询中获取联系人的名字,姓氏,电子邮件ID

Android自助餐之自定义控件从layout自定义控件

如何在单个应用程序中使用应用程序小部件创建 android 应用程序

客户下单后未付款时,客服后台显示订单状态为()

Android自助餐之AsyncTask