电容器和相机
从您的 Capacitor app 中将一个Android 设备锁定为站点模式:隐藏系统 UI,屏蔽硬件按钮并运行为主启动器. 由发售站,站牌和单功能装置所建.
🤖 建筑与AI编码代理? 安装 Capgo 技能 所以克劳德代码,代码,光标,副驾驶,或双子座CLI知道如何安装和使用
@capgo/capacitor-android-kiosk在您的电容应用程序中:npx skills add Cap-go/capgo-skills。然后问你的经纪人: 加上@capgo/capor-android-kiosk到我的Capacitor应用上并把它接上 代理设置指南 • 妇女 主机磁共振
主要特点
- Kiosk 模式数字 :
enterKioskMode()隐藏系统UI并屏蔽硬件按钮,exitKioskMode()恢复他们. - 启动器数字 :
setAsLauncher()打开家用屏幕设置 这样你的应用就可以成为发射装置,isSetAsLauncher()检查它. - 允许的密钥数字 :
setAllowedKeys()选择哪些硬件键继续以站点模式运行 . - 国家检查数字 :
isInKioskMode()报告工作站模式是否活动. - 平台:Android (英语). 仅限Android. iOS和网络不支持.
文档
这里有最完整的医生: https://capgo.app/docs/plugins/android-kiosk/ 页面存档备份,存于互联网档案馆
兼容性
| 插件版本 | 电容兼容性 | 维护 |
|---|---|---|
| 联合国 | 联合国 | ✅ |
| 页:1 | 页:1 | 应要求 |
| 页:1 | 页:1 | ❌ |
| 页:1 | 页:1 | ❌ |
说明: 此插件的主要版本沿用了Capacitor的主要版本. 使用匹配您的 Capacitor 安装的版本( 如 Capacitor 8 的插件 v8) 。 只有最新的主要版本得到积极维护.
安装
您可以使用我们的 AI 辅助设置安装插件 。 使用以下命令将 Capgo 技能添加到您的 AI 工具 :
npx skills add https://github.com/cap-go/capacitor-skills --skill capacitor-plugins
然后使用下列提示:
Use the `capacitor-plugins` skill from `cap-go/capacitor-skills` to install the `@capgo/capacitor-android-kiosk` plugin in my project.
如果您更喜欢手动设置,请通过运行以下命令来安装插件,并遵循下面的平台特定指令:
npm install @capgo/capacitor-android-kiosk
npx cap sync
平台支持
此插件为 仅限机器人。对于iOS站模式功能,请使用设备内置 引导访问 特性.
特征
- Kiosk 模式: 隐藏系统 UI并输入浸润全屏模式
- 保持存活状态: 在站台时提供前景服务; 调用时停止
exitKioskMode()。 。 。 . - 会话选项数字 :
restoreAfterReboot尝试在重启后再次打开应用程序;relaunch+ 键relaunchIntervalMinutes试图在计时器上让UI前进. - 启动器集成: 将您的应用程序设定为设备发射器/家用应用程序
- 硬件密钥控制: 屏蔽或允许特定的硬件按钮
- 状态检测: 检查站点模式是否活动, 或者是否将应用设定为启动器
- Android 6.0+ (英语):支持Android API 23通过Android 15(API 35)
使用量
基本 Kiosk 模式
import { CapacitorAndroidKiosk } from '@capgo/capacitor-android-kiosk';
// Enter kiosk mode (with optional: restoreAfterReboot, relaunch, relaunchIntervalMinutes)
await CapacitorAndroidKiosk.enterKioskMode();
// Exit kiosk mode
await CapacitorAndroidKiosk.exitKioskMode();
// Check if in kiosk mode
const { isInKioskMode } = await CapacitorAndroidKiosk.isInKioskMode();
console.log('Kiosk mode active:', isInKioskMode);
启动器功能
对于完整的站台模式功能,您需要将您的应用设置为设备发射器:
// Open home screen settings for user to select your app as launcher
await CapacitorAndroidKiosk.setAsLauncher();
// Check if app is set as launcher
const { isLauncher } = await CapacitorAndroidKiosk.isSetAsLauncher();
console.log('App is launcher:', isLauncher);
硬件密钥控制
// Allow only volume keys
await CapacitorAndroidKiosk.setAllowedKeys({
volumeUp: true,
volumeDown: true,
back: false,
home: false,
recent: false
});
// Block all keys (default)
await CapacitorAndroidKiosk.setAllowedKeys({});
完整示例
async function setupKioskMode() {
try {
// Check if already set as launcher
const { isLauncher } = await CapacitorAndroidKiosk.isSetAsLauncher();
if (!isLauncher) {
// Prompt user to set as launcher
await CapacitorAndroidKiosk.setAsLauncher();
alert('Please select this app as your Home app');
return;
}
// Configure allowed keys
await CapacitorAndroidKiosk.setAllowedKeys({
volumeUp: true,
volumeDown: true,
back: false,
home: false,
recent: false,
power: false
});
// Enter kiosk mode
await CapacitorAndroidKiosk.enterKioskMode();
console.log('Kiosk mode activated');
} catch (error) {
console.error('Failed to setup kiosk mode:', error);
}
}
API 密码
isInKioskMode()isSetAsLauncher()enterKioskMode(...)exitKioskMode()setAsLauncher()setAllowedKeys(...)getPluginVersion()- 接口
Android Kiosk插件用于控制站台模式和发射机功能. 此插件仅为Android. 对于iOS站模式,使用设备的"向导访问"功能.
时尚模式( I)
isInKioskMode() => Promise<{ isInKioskMode: boolean; }>
检查应用程序是否以站点模式运行 .
回返情况: Promise<{ isInKioskMode: boolean; }>
自: 1.0.0 (单位:千美元)
isSetAsLauncher () (中文(简体) )
isSetAsLauncher() => Promise<{ isLauncher: boolean; }>
检查该应用程序是否被设定为设备发射器(home app).
回返情况: Promise<{ isLauncher: boolean; }>
自: 1.0.0 (单位:千美元)
输入 KioskMode (...)
enterKioskMode(options?: EnterKioskModeOptions | undefined) => Promise<void>
输入站台模式,隐藏系统UI并屏蔽硬件按钮. 同时启动一个前景保持-活性服务,因此该应用不太可能被系统所杀. 应用软件必须被设定为设备发射器,以有效发挥作用.
| 参数 | 类型 | 说明 |
|---|---|---|
options | EnterKioskModeOptions | 可选的 奥米 restoreAfterReboot 或者说 relaunch 以保留其保存的值; 当您想要改变时通过它们. |
自: 1.0.0 (单位:千美元)
退出窗口模式 ()
exitKioskMode() => Promise<void>
出站模式,恢复正常的系统UI和硬件按钮功能. 同时停止在 Enter-KioskMode () 开始的预览保存服务 .
自: 1.0.0 (单位:千美元)
设定 ASLauncher ()
setAsLauncher() => Promise<void>
打开设备的家用屏幕设置,允许用户将这个应用程序设置为发射器. 这是全站模式功能所需的.
自: 1.0.0 (单位:千美元)
设置 AllowedKeys (...)
setAllowedKeys(options: AllowedKeysOptions) => Promise<void>
设定允许哪些硬件密钥在站台模式下运行 . 默认情况下,所有硬件密钥会以站台模式被屏蔽.
| 参数 | 类型 | 说明 |
|---|---|---|
options | AllowedKeysOptions | 允许的密钥配置 |
自: 1.0.0 (单位:千美元)
获取 PluginVersion ()
getPluginVersion() => Promise<{ version: string; }>
获取本地 Capacitor 插件版本 .
回返情况: Promise<{ version: string; }>
自: 1.0.0 (单位:千美元)
接口
输入工作站模式选项
可选旗帜 enterKioskMode。 。 。 .
| Prop | 类型 | 说明 |
|---|---|---|
restoreAfterReboot | boolean | 重启后,请启动应用程序,以便您打电话 enterKioskMode() 再来一次 只做最好的(OEM行为,强制-停止). 关闭保存值 。 呼叫时清除 exitKioskMode()。 。 。 . |
relaunch | boolean | 定期尝试将应用带入前景. 屏幕关闭时跳过 。 经常从某些装置的背景中被阻断——作为默认的发射装置,放宽电池限制,并允许精确的警报(必要时)提高概率。 关闭保存值 . |
relaunchIntervalMinutes | number | 重新开始尝试之间的分钟 relaunch 开始 范围 5-60; 默认 15. |
允许键选项
工作站模式下允许的硬件密钥配置选项 .
| Prop | 类型 | 说明 | 默认 |
|---|---|---|---|
volumeUp | boolean | 允许音量向上按钮 | false |
volumeDown | boolean | 允许音量下调按钮 | false |
back | boolean | 允许后键 | false |
home | boolean | 允许家用按钮 | false |
recent | boolean | 允许最近的应用程序按钮 | false |
power | boolean | 允许电源按钮 | false |
camera | boolean | 允许相机按钮( 如果存在) | false |
menu | boolean | 允许菜单按钮( 如果存在) | false |
Android 配置
1. 主要活动设置
要启用全硬件密钥屏蔽, 您需要覆盖 dispatchKeyEvent 在你身边 MainActivity.java数字 :
import android.view.KeyEvent;
import ee.forgr.plugin.android_kiosk.CapacitorAndroidKioskPlugin;
public class MainActivity extends BridgeActivity {
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
// Get the kiosk plugin
CapacitorAndroidKioskPlugin kioskPlugin = (CapacitorAndroidKioskPlugin)
this.getBridge().getPlugin("CapacitorAndroidKiosk").getInstance();
if (kioskPlugin != null && kioskPlugin.shouldBlockKey(event.getKeyCode())) {
return true; // Block the key
}
return super.dispatchKeyEvent(event);
}
@Override
public void onBackPressed() {
// Don't call super.onBackPressed() to disable back button
// Or call the plugin's handleOnBackPressed
}
}
2. AndroidManifest.xml 互联网档案馆的存檔,存档日期2013-12-02
添加启动器意图过滤器使您的应用程序可以选择为启动器 :
<activity
android:name=".MainActivity"
...>
<!-- Existing intent filter -->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<!-- Add this to make app selectable as launcher -->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
重要说明
-
发射装置要求:对于完整的站台模式功能(屏蔽出家按钮,防止任务切换),您的应用程序必须被设定为设备发射器.
-
测试:在测试时,您可以在程序上退出站台模式,或者通过设置另一个应用作为发射器.
-
Android 版本:插件为Android 11+使用现代Android API,并回落到更古老的方法来与Android 6.0+相兼容.
-
警卫: 此插件是为合法的站台应用程序而设计的. 确保您为用户提供退出站模式的方法 .
-
电池: Kiosk 模式保持屏幕打开. 考虑执行您的屏幕超时或亮度管理 .
iOS 选项
对于iOS设备,使用内置设备 引导访问 特性 :
- 转到设置 > 无障碍 > 引导访问
- 打开有指引的访问
- 设置密码
- 打开你的应用
- 三击侧键
- 调整设置并开始引导访问
捐款
见 捐款额
许可证
麻省理工学院
作者
马丁·多纳迪厄 马丁@ capgo.app