如何查找“的扫描码”;“未知密钥”;在Android中?

如何查找“的扫描码”;“未知密钥”;在Android中?,android,bluetooth,scancodes,Android,Bluetooth,Scancodes,我正试图在安卓5.1中通过为我的蓝牙设备创建自定义的按键布局文件来进行一点按键重新映射,但是我的一些设备的按键要么在安卓中不起任何作用(比如键盘上的iOS特定按键),要么在显示为按键事件之前被安卓截获 据我所知,问题在于这些按键的扫描码目前没有映射到通用键盘布局列表中的任何内容,或者它们被视为系统键,如主按键,实际按键从未到达常规应用程序。 假设这是因为扫描码在Android中还没有映射到任何东西,那么有没有办法从设备中获取原始扫描码,这样我就可以自己尝试记录代码并为其编写适当的keylayou

我正试图在安卓5.1中通过为我的蓝牙设备创建自定义的按键布局文件来进行一点按键重新映射,但是我的一些设备的按键要么在安卓中不起任何作用(比如键盘上的iOS特定按键),要么在显示为按键事件之前被安卓截获

据我所知,问题在于这些按键的扫描码目前没有映射到通用键盘布局列表中的任何内容,或者它们被视为系统键,如主按键,实际按键从未到达常规应用程序。
假设这是因为扫描码在Android中还没有映射到任何东西,那么有没有办法从设备中获取原始扫描码,这样我就可以自己尝试记录代码并为其编写适当的keylayout文件?我的设备上有根,如果有一种基于Windows的方法从蓝牙键盘读取未知扫描码,我还可以将设备连接到我的Windows 10 PC。

我知道这是一个老问题,但我在寻找类似问题时遇到了它

也许有更好的方法可以做到这一点,但这是我知道如何更改需要root的键码的唯一方法

首先将蓝牙设备连接到android设备,然后将android设备连接到pc。在命令提示符中键入:

adb shell
cat /proc/bus/input/devices
它会打印出类似的内容

I: Bus=0005 Vendor=0b05 Product=4500 Version=0031
N: Name="ASUS Gamepad"
将会有比这更多的设备,但我们将使用华硕游戏垫为例。 在桌面上创建一个名为Vendor_0b05_Product_4500.kl的文本文件,该文件区分大小写,因此请确保v+p都是大写

安装推荐的apk cde或在此处获取开放源代码版本安装、运行并按下要重新映射的键。这两个应用程序都会向您显示扫描代码,并记录它们以及它们映射到的密钥

现在,所有扫描代码都已在文本编辑器中打开供应商_0b05_Product_4500.kl,并键入此示例

#Asus Gamepad
#key 304 BUTTON_A
键304是扫描码,按钮A是您希望android系统将其解释为的键码


保存文件并将其推送到/system/usr/keylayout/,如果您需要有关keycodes的帮助,请重新启动设备。请查看此处,不要添加KEYCODE部分。

尝试在play store中显示KeyEvent。