2011-09-16 7 views
5

Moja aplikacja musi mieć jednocześnie aktywne dwa źródła danych wejściowych: skaner kodów paskowych i klawiaturę programowalną. Kiedy paruję skaner z niebieskim zębem, traktowany jest on jak klawiatura fizyczna. Tak więc, kiedy to urządzenie jest podłączone, miękka klawiatura nie jest wyświetlana (miękka klawiatura jest dezaktywowana).Czy w tym samym czasie można aktywować klawiaturę fizyczną i klawiaturę programową?

Czy w tym samym czasie można aktywować klawiaturę fizyczną i klawiaturę programowalną? Jeśli nie, jakie jest najlepsze podejście do rozwiązania problemu? Czy muszę zaimplementować niestandardowy widok, który tonie kluczowe zdarzenia prasowe? Czy istnieje jakakolwiek aplikacja na klawiaturze na rynku, która to robi?

Jak programowo włączać i wyłączać klawiaturę fizyczną? To jest przycisk przełączania „Użyj klawiatury fizycznej” ustawienie (znalazłem zrzut ekranu z tym ustawieniem tutaj.

enter image description here

Odpowiedz

1

Nie jest możliwe, aby zarówno klawiatura fizyczna i klawiatura aktywne w tym samym czasie jest wymuszane przez funkcję InputMethodService onEvaluateInputViewShown. można sprawdzić dokumentację here.

/** 
* Override this to control when the soft input area should be shown to 
* the user. The default implementation only shows the input view when 
* there is no hard keyboard or the keyboard is hidden. If you change what 
* this returns, you will need to call {@link #updateInputViewShown()} 
* yourself whenever the returned value may have changed to have it 
* re-evaluated and applied. 
*/ 
public boolean onEvaluateInputViewShown() { 

więc jeśli nie realizują własną IME w którym można overide onEvaluateInputViewShown nie jest możliwe, aby mieć zarówno fizyczne i softkeyboard być aktywne w tym samym czasie .

Jeśli chodzi o ostatnie pytanie, nie jestem pewien, ale myślę, że nie ma sposobu, aby programowo ukryć hardKeyboard. Chociaż nie ma rozwiązania, powinieneś sprawdzić: this question

Powiązane problemy