2011-09-16 19 views
5

Mi aplicación necesita tener dos fuentes de entrada activas al mismo tiempo: un escáner de código de barras y el teclado virtual. Cuando emparejo un escáner de dientes azules, se lo trata como un teclado físico. Por lo tanto, cuando este dispositivo está conectado, el teclado virtual no se muestra (el teclado virtual está desactivado).¿Es posible tener activados el Teclado físico y el Teclado programable al mismo tiempo?

¿Es posible tener activados el Teclado físico y el Teclado programable al mismo tiempo? Si no, ¿cuál es el mejor enfoque para resolver el problema? ¿Tengo que implementar una vista personalizada que transfiera los eventos de pulsación de teclas? ¿Hay alguna aplicación de teclado en el mercado que hace esto?

¿Cómo puedo, programáticamente, activar y desactivar el teclado físico? Este es el botón de activación 'utilizar el teclado físico' de ajuste (encontré la captura de pantalla de esta configuración aquí:.

enter image description here

Respuesta

1

No es posible tener teclado físico y un teclado suave activos al mismo tiempo, es forzada por la función InputMethodService onEvaluateInputViewShown. puede comprobar la documentación 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() { 

Así que a menos que esté implementando su propio IME en el que se puede overide onEvaluateInputViewShown no es posible tener tanto física como softkeyboard a estar activas al mismo tiempo

En relación con su última pregunta, no estoy seguro, pero creo que no hay forma de ocultar el hardkey mediante programación. Aunque no tiene la solución, debe verificar this question

Cuestiones relacionadas