Me gustaría detectar si el teléfono de los usuarios actuales tiene un teclado de hardware o solo un teclado en pantalla. ¿Es esto posible con el SDK?¿Hay alguna manera en Android de saber si un dispositivo de un usuario tiene un teclado real o no?
Q
¿Hay alguna manera en Android de saber si un dispositivo de un usuario tiene un teclado real o no?
6
A
Respuesta
16
Sí, puedes.
buscar el objeto Configuration usando
Configuration config = getResources().getConfiguration();
... y luego buscar en el campo keyboard
.
Si el valor de keyboard
no es KEYBOARD_NOKEYS, el usuario tiene un teclado de hardware.
Tenga en cuenta que como @Carl dice en su comentario a continuación, el usuario puede conectar un teclado USB en cualquier momento mientras su aplicación se está ejecutando, haciendo que el valor de keyboard
cambie.
Cuestiones relacionadas
- 1. Gravatar: cómo sé si un usuario tiene una imagen real
- 2. ¿Hay alguna manera de almacenar de forma segura los datos de usuario en un dispositivo Android?
- 3. ¿Hay alguna forma de saber si un dispositivo Android es solo wifi?
- 4. cómo saber si un UITextView tiene un foco o no
- 5. ¿Hay una manera fácil de saber si un usuario tiene google 1+ una URL
- 6. ¿Cómo determinar si un dispositivo Android tiene una pantalla táctil?
- 7. ¿Hay alguna forma de detectar si un usuario tiene conexión wifi con php o javascript?
- 8. ¿Hay alguna manera de determinar si un usuario está utilizando banda ancha o marcación
- 9. ¿Hay alguna manera de saber si un objeto ha implementado ToString explícitamente en C#
- 10. ¿Hay alguna manera de determinar si un PID de Linux está en pausa o no?
- 11. ¿Hay alguna manera de saber si se muestra el teclado virtual?
- 12. Cómo depurar código nativo de Android en un dispositivo real
- 13. android: aplicación de prueba en un dispositivo real
- 14. JS ¿Hay alguna manera de verificar si existe un evento?
- 15. ¿Hay alguna manera de saber con certeza si omite las pruebas en un determinado paquete?
- 16. ¿Cómo implementar la aplicación Titanium en un dispositivo Android real?
- 17. ¿Hay alguna manera de determinar si un paquete tiene estado en Oracle?
- 18. ¿Hay alguna manera de probar si un objeto "es un" Backbone.Model en mi unidad de pruebas?
- 19. ¿Hay alguna manera de saber si un UIViewController se ha presentado y descartado de forma modal?
- 20. ¿Hay alguna manera de saber si un elemento ha completado una transición de CSS3?
- 21. ¿Cómo saber si un dispositivo en particular tiene soporte para hardware SIM?
- 22. ¿Hay alguna manera de saber si un script R se ejecuta directamente o dentro de otro script?
- 23. ¿Hay alguna manera de memorizar o materializar un IEnumerable?
- 24. Cómo saber si un usuario está visitando "/Default.aspx" o simplemente "/"
- 25. ¿Por qué Ruby no tiene un StringBuffer real o StringIO?
- 26. ¿Hay alguna manera de probar si jqGrid tiene datos o no?
- 27. ¿Hay alguna manera de verificar si un usuario realmente calificó su aplicación?
- 28. Comprueba si un archivo es real o un enlace simbólico
- 29. ¿Hay alguna manera de que un proceso de Android produzca un volcado dinámico en un OutOfMemoryError?
- 30. ¿Cómo sé si hay un teclado de hardware?
Gracias justo lo que estaba buscando. – Bryan
Si bien es cierto que el usuario TIENE un teclado de hardware si config.keyboard NO ES KEYBOARD_NOKEYS, se debe tener en cuenta que un dispositivo puede informar KEYBOARD_NOKEYS, pero luego tiene un teclado USB externo conectado e informar KEYBOARD_QWERTY, todo mientras su aplicación Esta corriendo. Al menos, tengo un GTablet ejecutando CyanogenMod 7.0.3-Harmony/Android 2.3.3 que hace exactamente eso. Y también, es posible que el valor del teclado, cuando no sea KEYBOARD_NOKEYS, sea KEYBOARD_12KEY, en lugar de KEYBOARD_QWERTY, por lo que si el tipo de teclado es importante para usted, es posible que desee probar específicamente estos. – Carl
@Carl - actualizado para incluir el punto re: teclados que se adjuntan a mediados de la ejecución de la aplicación. Gracias. – razlebe