2016-01-02 5 views
0

Я пытаюсь сделать небольшое переопределение ключей в Android 5.1, создав пользовательские файлы keylayout для своих устройств Bluetooth, однако некоторые из моих устройств имеют ключи, которые либо ничего не делают в Android (например, специальные клавиши iOS на клавиатура) или перехватить Android до того, как он появится в качестве ключевого события.Как найти scancode «неизвестного ключа» в Android?

Насколько я могу судить, проблема заключается в том, что эти ключи имеют scancodes, которые в настоящее время не сопоставляются ни с чем в общем списке ключевых слов, или они считаются системным ключом, таким как клавиша Home и фактическое нажатие клавиши никогда не доходит до обычных приложений. Предполагая, что scancode не привязана ни к чему еще в Android, есть ли способ получить сырые сканноды, поступающие с устройства, поэтому я могу попытаться сам документировать коды и написать для него подходящий файл keylayout? У меня есть root на моем устройстве, и я также могу подключить устройства к компьютеру с Windows 10, если есть способ, основанный на Windows, для чтения неизвестных scancodes с клавиатуры Bluetooth.

+0

Попробуйте KeyEvent Display в магазине воспроизведения. – cde

ответ

0

Я знаю, что это старый вопрос, но я наткнулся на него, ища что-то подобное.

Возможно, это лучший способ сделать это, но это единственный способ, которым я знаю, как изменить коды ключей, которым нужен корень.

сначала подключите ваше устройство Bluetooth к вашему устройству Android, а затем вашему устройству Android на свой компьютер. В командной строке введите:

adb shell 
cat /proc/bus/input/devices 

он будет печатать что-то похожее на это

I: Bus=0005 Vendor=0b05 Product=4500 Version=0031 
N: Name="ASUS Gamepad" 

будет больше, чем это, и для многих других устройств, но мы будем использовать ASUS геймпад для пример. На вашем рабочем столе создайте текстовый файл с именем Vendor_0b05_Product_4500.kl, поэтому он чувствителен к регистру, поэтому убедитесь, что v + p - это верхний регистр.

Установите apk cde или используйте здесь с открытым исходным кодом. https://github.com/chrisboyle/keytest/downloads Установите его и нажмите клавиши, которые вы хотите переназначить. Оба приложения покажут вам, что коды сканирования записывают их и ключ, на который они сопоставлены.

Теперь вы все коды сканирования открыть Vendor_0b05_Product_4500.kl в текстовом редакторе и введите это, например

#Asus Gamepad 
#key 304 BUTTON_A 

ключ 304 является сканкод и BUTTON_A является скан вы хотите андроида систему интерпретировать его как.

Сохраните файл и добавьте его в/system/usr/keylayout/и перезагрузите устройство, если вам нужна помощь с кодами клавиш, здесь http://developer.android.com/reference/android/view/KeyEvent.html просто не добавляйте часть KEYCODE.