python - 如果不是系统键盘,如何连接蓝牙键盘?
问题描述
我想将蓝牙键盘连接到我的计算机,但我不想将其用作普通的 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 键盘。
解决方案
默认情况下bluetoothd
,会将蓝牙 HID 设备移交给内核。
您可以通过以下方式禁用此行为
- 在禁用
hid
和/或配置文件的情况下重建 BlueZhog
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/
推荐阅读
- asp.net-mvc - mvc) 我想在我的列表播放器视图中获取播放器列表
- angularjs - $scope.dtInstance.reloadData() 在 $interval 内调用时不是函数
- ios - 在 Swift 的函数参数中强制展开是如何工作的?
- angular - ng build --prod 在 ag-grid v 22.1.1 升级后失败
- ios - Why is the CollectionView function called twice in Swift?
- java - 从 S3 下载和解压缩文件的内存占用
- r - 将日期转换为数字,但限制为一年中的天数
- python - 如何使用 HTTPS 在 cdn 中的特定服务器 IP 上获取网站?
- regex - Google Sheet 大小写比较
- android - 模拟 FirebaseRemoteConfig getBoolean()