¿Cómo forzar a mostrar y ocultar el teclado virtual si no hay teclado de hardware disponible?

¿Cómo puedo detectar que el teléfono no tiene teclado de hardware y sólo en ese caso para obligar a mostrar el virtual? ¿Y cómo puedo ocultarlo?

He intentado poner el enfoque como este, pero no funciona:

View exampleView = (View)findViewById(R.id.exampleBox); exampleView.requestFocus(); 

Si forzo así el teclado virtual, el teclado aparecerá también cuando un teclado de hardware esté disponible, lo que no tiene sentido.

 InputMethodManager inputMgr = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); inputMgr.toggleSoftInput(0, 0); 

Y por último pero no menos importante, ¿cómo puedo mostrar directamente el teclado numérico o de teléfono? (No es el teclado normal)

¿Alguna idea?

¡Gracias!

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.