首页 > 解决方案 > 如果不是系统键盘,如何连接蓝牙键盘?

问题描述

我想将蓝牙键盘连接到我的计算机,但我不想将其用作普通的 HID 设备(因此,如果我按下键,则不会输入字符)。是否可以在 Python 中查看准确按下了哪些键?
(我想为每个键分配功能)

我在 Ubuntu 上,我正在使用 Python 3。编辑:转到设备 -> 信息 -> UUIDs 显示:

00001000-0000-1000-8000-00805f9b34fb ServiceDiscoveryServerServiceClassID 00001124-0000-1000-8000-00805f9b34fb 人机接口设备服务 (HID) 00001200-0000-1000-8000-00805f9b34f PnP 信息

所以我认为它是一个 HID 键盘。

标签: pythonpython-3.xubuntubluetoothkeyboard

解决方案


默认情况下bluetoothd,会将蓝牙 HID 设备移交给内核。

您可以通过以下方式禁用此行为

  1. 在禁用hid和/或配置文件的情况下重建 BlueZhog
  2. input在没有插件的情况下启动蓝牙

https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/README#n198中有更多关于重建的详细--disable-hid信息--disable-hog

要删除输入插件,然后修改/lib/systemd/system/bluetooth.service以添加该ExecStart--noplugin=input。例如:

ExecStart=/usr/lib/bluetooth/bluetoothd --noplugin=input

需要明确的是,以上将禁用系统正在使用的所有蓝牙 HID 设备。

如果您将其保留,以便 BlueZ 将 HID 设备移交给系统,那么它将在/dev/input/. 您可以访问有关在python-evdev库中按下了哪些键的信息。更多信息请访问:https ://python-evdev.readthedocs.io/


推荐阅读