A szituáció:
Adott egy EWNET bluetooth bllentyűzet. Bekapcsolás és párosítás után a telefon/tablet felismeri de bekapcsolt NumLock móddal indul el, de csak Android 12 és a fölött. Az összes régebbi Android verziónál a billentyűzet kikapcsolt NumLockkal kerül felismerésre. OTG és USB billentyűzet rádugása esetén is bekapcsolt NumLock-al indul a billentyűzet. Ha a NumLock ki van kapcsolva az USB billentyűzeten akkor a Bluetooth billentyűzet is megfelelően működik. A dolog pikantériája, hogy a bluetooth billentyűzeten nincs NumLock, lévén csökkentett gombszámmal készült billentyűzet.
A netet és fórumokat túrva ez sajnos Android 12 bug, akarom mondani, feature lesz, mert más gyártók termékeinél is jelentkezik a hiba.
Kérdés: Milyen szoftveres megoldás létezik amivel a NumLock státuszát át lehet állítani?
Update1:
A rák ott van elásva, hogy a szellemileg csökkentett Android fejlesztők az AMETA_NUM_LOCK_ON alap értékét bekapcsoltnak definiálták, aminek csak, az a hátránya, hogy ennek az érték ellenőrzésétől függ, hogy a numlock területről hogyan kezeli a keypress eventeket. A dologban a pikantéria, hogy egy új fizikai billentyűzet csatlakoztatásakor, ugyanez alapján kommunikálja ki a billentyűzetnek a NumLok LED állapotát. Ez utóbbi a bluetooth billentyűknél triggereli numlock módot, ami a NumPad nélküli laptopoknak megfelelő viselkedés.
A probléma, hogy az ilyen billentyűzetek ilyenkor csak a numpadnak megfelelő területen lévő billentyűkről küldenek eventet.
Amennyiben USB billentyűzet van csatlakoztatva, akkor a NumLock megnyomásakor AMETA_NUM_LOCK_ON" kikapcsolt értékre vált. Ilyenkor ha egy másik fizikai billentyűzet (USB, bluetooth, whatever) van csatlakoztatva, a NumLock LED kikapcsolt állapotát kommunikálja, ezért az ebben a módban indul el.
Update2:
Próbáljunk NumLock eventet injektálni shellből. A NumLock keycode értéke a hivatalos doksi szerint 0x8fh azaz 143.
$ adb shell input keyevent 143
Semmi nem történik. Az Android magasról tesz a gombnyomásra. Érdekes módon az összes egyéb karakter működik.
Stay tooned...
- 99 megtekintés