应用可以访问的内容
应用是你的智能体上传并放置到屏幕上的页面。播放器通过 window.screenrig.device 让它使用所在设备的硬件:应用监听扫描、驱动继电器或打印收据,并用 emit 将结果报告给你的智能体,因此“工牌已扫描”或“已请求服务”会进入项目事件日志。
每种硬件都有各自的功能标志。只有在提供该功能的播放器上、在具备该硬件的设备上、对控制屏幕的页面,标志才为 true,因此同一个构建也能在没有该硬件的屏幕上运行。SDK 参考列出了标志、调用和错误。
每个运行应用的播放器上的页面功能
context 中的页面可见性、页面计时、启动参数和屏幕信息在每个运行应用的播放器上都可用:播放器 Web 应用、Android(Google Play 和 Amazon Signage Stick)、Linux 和 Raspberry Pi、macOS、Windows、BrightSign、Samsung Smart Signage (Tizen) 和 LG webOS Signage。它们不需要硬件。Apple TV、iPhone 和 iPad 不运行应用。
每个播放器提供的功能
每个单元格说明播放器的行为。“是”表示该行所述的功能可用,“否”表示播放器不提供该功能。每一行对应的调用见 SDK 参考。
| 功能 | Android | Linux 和 Raspberry Pi | macOS | Windows | BrightSign | Samsung (Tizen)、LG webOS | 播放器 Web 应用 |
|---|---|---|---|---|---|---|---|
context 中的页面可见性、页面计时、启动参数和屏幕信息 | 是 | 是 | 是 | 是 | 是 | 是 | 是 |
| 条码扫描器和工牌读卡器(键盘模拟式) | 是 | 是 | 是 | 否 | 是 | 是 | 是 |
| NFC 标签 | 是 | 否 | 否 | 否 | 否 | 否 | 否 |
| 摄像头条码扫描 | 是 | 是 | 是 | 否 | 否 | 否 | 否 |
| 人数统计 | 是 | 否 | 是 | 否 | 否 | 否 | 否 |
| 麦克风声音级别 | 是 | 是 | 是 | 是 | 否 | 否 | 否 |
| USB 和 RS-232 串口 | 是(USB CDC-ACM 适配器) | 是 | 否 | 是 | 是(板载 RS-232 端口和 USB 串口) | 否 | WebSerial,仅限 ChromeOS 自助终端 |
| GPIO | 设备开放可写 sysfs GPIO 芯片的情况(无上下拉) | Raspberry Pi;使用 SCREENRIG_GPIO_CHIP 的其他板子 | 否 | 否 | 是:GPIO 接口上的 GPIO 0 到 7,或 BrightSign USB 转 GPIO 适配器 | 否 | 否 |
| Bluetooth LE 传感器(读取和通知) | 是(Android 12 及更高版本) | 是(主机的 BlueZ) | 是 | 是 | 否 | 否 | 否 |
| 收据打印机(ESC/POS) | 是(USB) | 是 | 否 | 是 | 否 | 否 | 否 |
| PDF 打印 | 否 | 是(CUPS) | 否 | 否 | 否 | 否 | 否 |
| USB 销售点扫描器(WebHID) | 否 | 否 | 否 | 否 | 否 | 否 | 仅限 ChromeOS 自助终端 |
| 红外遥控(接收和发送) | 发送,需设备带有红外发射器 | 否 | 否 | 否 | 接收和发送 | 否 | 否 |
| 往返屏幕所在网络的 UDP 消息 | 是 | 是 | 否 | 是 | 是 | 否 | 否 |
| 实时 HDMI 输入 | 否 | 否 | 否 | 否 | 是:XT1143、XT1144、XT1145、XT2144 和 XT2145 | 否 | 否 |
Android 涵盖 Google Play 和 Amazon Signage Stick 播放器。Raspberry Pi 软件包就是 Linux 播放器。
各播放器的备注
Android 和 Amazon Signage Stick
串口是 USB CDC-ACM 串口适配器,打印机是 USB 打印机,Bluetooth LE 需要 Android 12 或更高版本,GPIO 线路需要暴露可写 sysfs GPIO 芯片的设备,红外通过设备自带的发射器发送(设备有发射器时;Android 不接收红外)。
适用两类权限,且都不会打断正在运行的屏幕:
- 摄像头、麦克风和 Bluetooth在设置设备时一次性授予,可在 Android 的应用设置中或用
adb shell pm grant授予。播放器从不请求这些权限。在授予之前,页面不持有摄像头或麦克风标志,Bluetooth 调用会以ble_unavailable拒绝。 - USB 设备仅在页面首次打开串口或向 USB 打印机打印时才会弹出 Android 的 USB 对话框,每台设备一次。像键盘一样输入的条码扫描器或工牌读卡器不需要权限。
Linux 和 Raspberry Pi
Raspberry Pi 软件包就是 Linux 播放器,标注为 Linux 的每一行都适用于 Pi。在 Pi 3、4 和 5 上会自动找到 Pi 的 GPIO 排针;其他板子用 SCREENRIG_GPIO_CHIP 指定其芯片。GPIO 上的按钮和继电器介绍接线以及播放器对芯片的访问。Bluetooth LE 使用主机的 BlueZ,PDF 打印通过 CUPS 进行,因此 PDF 打印机就是一个 CUPS 队列。
macOS
macOS 提供键盘模拟式扫描器、摄像头、麦克风和 Bluetooth LE。它没有串口、GPIO 或打印调用。
Windows
Windows 提供麦克风、串口、Bluetooth LE、收据打印机和 UDP 套接字。它没有键盘模拟式采集:播放器无法得知页面上的字段何时获得焦点,因此不会截取扫描器的按键,扫描器会像任何键盘一样输入到页面当前获得焦点的字段。摄像头和 GPIO 不提供。
BrightSign
BrightSign 播放器上的应用可读取其板载 RS-232 端口和 USB 串口设备、键盘模拟式扫描器和工牌读卡器,以及 GPIO 线路:GPIO 接口上的引脚 0 到 7、USB GPIO 扩展器,以及 BP200 和 BP900 按钮板的线路和 LED。它可以接收遥控器的红外码,向电视或 AV 设备发送红外码,为 Crestron、AMX、Q-SYS 和演出控制器收发 UDP 消息,并在 XT1143、XT1144、XT1145、XT2144 和 XT2145 上显示播放器 HDMI 输入的实时画面。GPIO 上的按钮和继电器列出引脚范围,BrightSign 播放器介绍该播放器。
Samsung Smart Signage (Tizen) 和 LG webOS Signage
这些播放器在浏览器播放器中运行应用。只要连接了键盘式扫描器或工牌读卡器,它们就能使用页面功能和键盘模拟式扫描,没有其他硬件。它们不提供 WebSerial 和 WebHID。
播放器 Web 应用和 ChromeOS
在播放器 Web 应用中,扫描器是键盘模拟式读卡器。WebSerial 串口和 WebHID 销售点扫描器仅在 ChromeOS 自助终端中可用。Chrome 通过其企业策略 SerialAllowUsbDevicesForUrls 或 SerialAllowAllPortsForUrls 向播放器授予串口;ChromeOS 自助终端一节介绍如何设置该自助终端。
隐私
摄像头的画面在设备上分析,没有任何图像离开设备,也没有任何音频离开设备。
MQTT 和网络上的设备
屏幕所在网络上的硬件不需要标志。应用可以从网络上的设备获取数据,并连接到 MQTT 代理的 WebSocket 监听端口,SDK 页面介绍了这两种方式:订阅 MQTT和访问屏幕所在网络上的设备。屏幕网络上的页面列出了每个播放器能访问的内容:Samsung Smart Signage (Tizen)、LG webOS Signage 和 BrightSign 只能访问 https:// 和 wss:// 地址。
常见问题
- 哪些播放器可以读取条码扫描器或工牌读卡器?
- Android、Linux 和 Raspberry Pi、macOS、BrightSign、Samsung Smart Signage (Tizen)、LG webOS Signage 以及播放器 Web 应用可以读取像键盘一样输入的扫描器。Windows 不接收扫描器的按键。
- Raspberry Pi 屏幕能响应按钮或切换继电器吗?
- 可以。运行 Linux 播放器的 Pi 3、4 或 5 可以读取其 GPIO 排针上的按钮和触点,并通过继电器板驱动继电器。
- 应用需要屏幕前的人授予权限吗?
- 在屏幕前不需要。在 Android 上,摄像头、麦克风和 Bluetooth 在设置设备时一次性授予,USB 对话框只在页面首次使用 USB 串口或打印机时出现,每台设备一次。
- 摄像头会把图片发送到别处吗?
- 不会。摄像头的画面在设备上分析,没有任何图像离开设备。
- 需要费用吗?
- screenRIG 免费。扫描器、传感器、继电器板或打印机的费用由你承担。