Zajmuję się tworzeniem aplikacji, która pozwala użytkownikowi skanować kody kreskowe za pomocą zewnętrznego skanera kodów kreskowych podłączonego przez bluetooth. Skaner kodów paskowych działa jak klawiatura, czyli Android myśli, że zeskanowane kody kreskowe zostały wpisane na klawiaturze.Zezwalaj na wprowadzanie danych z klawiatury bluetooth, nawet jeśli ekran jest zablokowany
Aplikacja działa bez zarzutu, o ile ekran pozostaje włączony.
Po wyłączeniu ekranu mogę kontynuować skanowanie kodów kreskowych, ale zeskanowany tekst nie dociera już do aplikacji, a raczej wywołuje akcje na ekranie blokady.
Czy istnieje sposób na zezwolenie na wprowadzanie danych z zewnętrznej klawiatury do aplikacji, mimo że ekran został wyłączony?
Ewentualnie będę zmuszony pozostawić ekran włączony, ale to nie jest kuloodporne, ponieważ użytkownik może przypadkowo zablokować ekran.
UPDATE
Zrobiłem mały krok we właściwym kierunku za pomocą:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
To pokaże aplikację bez (niezabezpieczony) ekranu blokady, gdy nowe wejście z klawiatury jest przetwarzane. Niestety brakuje pierwszej litery. Musi to być spowodowane pierwszą listą budzącą ekran, a reszta wejścia faktycznie docierająca do EditText
.
dodać ten kod do swojej aktywności skanera 'getWindow() addFlags (WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);' i dodać to uprawnienie w oczywisty ' '. gotowe. –
W zależności od wersji możesz utworzyć widżet do dodania na ekranie blokady. Może to przesłuchać keyboad (skaner BT) i wysłać dane do Twojej aktywności. – AxelH