Bricolaj GPS moto

Marius '95

Membru Senior
Sugar daddy
Joined
Nov 13, 2005
Location
Brăila
In timp ce astept capacul, ma joc cu butoanele GPIO in Android.
Se pare ca Android foloseste si trimite catre aplicatii niste keycodes pentru diversele functii ale butoanelor. Acele keycodes sunt date de un keyboard layout file in functie de keycodes-urile trimise de kernel. La randul lor, kernel keycodes sunt trimise de driverul de tastatura si, surprize-surprize, sunt DIFERITE de keycodes-urile Android-ului. Si ca sa fie totul perfect zapacit, driverul de tastatura trimite kernel keycodes in functie de butonul fizic apasat, adica pozitia lui pe tastatura, NU functia butonului. Adica o tastatura in franceza va trimite exact aceleasi QWERTY keycodes ca si una americana, chiar daca codurile nu corespund cu eticheta butoanelor.
Revenind...
Conectez eu niste butoane acolo..., adaug un device overlay cu gpio-key pentru fiecare buton, aloc niste keycodes de-ale Android-ului, si apoi ma minunez juma' de zi cum apas butonul G si pe ecran apare K, cum apas enter si el face shutdown, cum apas dreapta si el se crash-uie, etc. etc. :capu:
 

miahi

Wizzard
Sugar daddy
Joined
Aug 1, 2004
Location
Unreal Estate, Ankh-Morpork, Discworld
Asta e kindof normal, pentru că apăsând "Z" pe tastatura franceză, care nu e configurată în OS, de obicei obții "Y", plus că trebuie să suporți și modifier keys, în funcție de care fiecare tastă poate să fie cu totul altceva.
 

Marius '95

Membru Senior
Sugar daddy
Joined
Nov 13, 2005
Location
Brăila
Documentatia androidului e bestiala:
If the input device has any keys that are mapped to KEYCODE_DPAD_UP, KEYCODE_DPAD_DOWN, KEYCODE_DPAD_LEFT, KEYCODE_DPAD_RIGHT, and KEYCODE_DPAD_CENTER (all must be present), then the device is considered to have a directional keypad.
Doua pagini mai incolo:
Legacy Unsupported Keys
These mappings appeared in previous versions of Android but were inconsistent with HID or used non-standard Linux key codes. They are no longer supported.
[...]
LKCLinux Key Code NameVersionAKCAndroid Key Code NameNotes
0x00e8KEY_CENTER1.60x0017KEYCODE_DPAD_CENTER4
 
Top Bottom