¿Cómo puedo cambiar el comportamiento de los botones de volumen frente a la orientación de la pantalla?

En el Acer Iconia A200, cuando cambia la orientación de la pantalla, la función del control de volumen cambia. En el modo horizontal, con el control de volumen en el lado derecho y en la parte superior, encontrará que 'abajo' en el control de volumen baja el volumen.

Ahora, voltea el dispositivo 90 grados a la izquierda a una orientación vertical, con el control de volumen en la parte superior izquierda. Ahora, la misma pulsación que estaba 'abajo' antes es 'derecha' y sube el volumen.

En otras palabras, la acción del control de volumen es sensible a la orientación del dispositivo.

Todavía no he encontrado ninguna forma de controlar esto en la configuración. ¿Hay alguna forma de cambiar este comportamiento? Eventualmente me acostumbraré, pero por el momento me está volviendo loco.

Agregado: después de ver la respuesta de Zuul hablando sobre el archivo gpio_keys.kl, Y obtener un teclado bluetooth, hice algunos experimentos. Cuando se utiliza un teclado bluetooth, los botones para subir/bajar el volumen de bluetooth son independientes de la orientación de la tableta. Entonces, algún software verifica de dónde proviene la clave y reasigna o no según corresponda, O el intercambio se realiza en alguna capa inferior (es decir, antes de que se convierta en un código de clave).

Respuestas (3)

Cómo funcionan las cosas actualmente

El sistema operativo Android usa un archivo para mapear los botones de volumen para saber qué hacer cuando se presionan:

El archivo:

/system/usr/keylayout/gpio-keys.kl

Contiene dos líneas para los botones de volumen:

key 115 VOLUME_UP WAKE_DROPPED
key 114 VOLUME_DOWN WAKE_DROPPED

No son "sensibles a la orientación", al igual que su posición física en el dispositivo.

El problema al que te enfrentas, al que se enfrentan muchos otros propietarios de tabletas, tiene que ver con la posición lógica en la acción. Si presionamos la parte hacia abajo del botón, el volumen debería bajar, pero dependiendo de la orientación, la parte hacia abajo en realidad sube el volumen.

Creo que la rotación del dispositivo debe tener en cuenta factores como este, para evitar que los usuarios tengan que "crear" hábitos extraños para una simple acción de "bajar el volumen". Pero, por otro lado, es por eso que los botones de volumen de su tableta están marcados con tres puntos en relieve para facilitar el reconocimiento táctil.


Posible solución para dispositivos rooteados

Dado que estos botones para poder ser cambiados necesitan ser alterados a un "nivel de sistema", la acción debe realizarse con privilegios de root en el dispositivo.

Si bien las siguientes dos soluciones no pueden lidiar con escenarios específicos de orientación, son útiles para reasignar los botones para que se ajusten a la orientación de la tableta en la que nos confundimos más:

  1. Aplicación: ButtonRemapper - Beta v0.2.4

    Herramienta para reasignar los botones de hardware. O mejor: una herramienta genérica para editar el archivo de mapa de diseño de teclas que Android usa para mapear las teclas.

    Hilo del foro XDA Developers con detalles extensos del autor

    Capturas de pantalla de ButtonRemapper


  2. Edición manual del archivo: gpio-keys.kl:

    1. Con un administrador de archivos raíz, desplácese /system/usr/keylayouty toque prolongadamente el archivo gpio-keys.kl;
    2. En el menú emergente, seleccione "Propiedades";
    3. Cambie los permisos del archivo a rw-rw-rw-para poder modificar su contenido;
    4. Después de tener los nuevos permisos, abra el archivo con un editor de texto;
    5. Busque dentro del archivo las siguientes dos líneas:

      key 115 VOLUME_UP WAKE_DROPPED
      key 114 VOLUME_DOWN WAKE_DROPPED
      
    6. Actualice las líneas intercambiando los números clave para que se convierta en:

      key 114 VOLUME_UP WAKE_DROPPED
      key 115 VOLUME_DOWN WAKE_DROPPED
      
    7. Guarde los cambios y reinicie su tableta.

    Ahora debería tener las acciones de los botones para subir/bajar el volumen alternadas, ya que se ajustan mejor a su orientación vertical.

    Para deshacerlo, simplemente invierta estas direcciones.

    Los créditos por la solución de edición de archivos se atribuyen al usuario jbeige de prosperoforums.org .


Después de leer el manual de su dispositivo , otros manuales de tabletas y las especificaciones del sistema operativo Android, estas son las mejores soluciones que pude encontrar para solucionar su problema.

Creo que te has perdido un poco la pregunta. Verá, en este dispositivo SON sensibles a la orientación. Tengo dos botones: '1' y '2'. Cuando la tableta está en modo horizontal con los botones en la parte superior, '2' baja el volumen y '1' lo sube. Cuando la tablet está en modo retrato, con los botones de la derecha, el '1' baja el volumen y el '2' lo sube. Esta sensibilidad de orientación es un dolor de cabeza GRAVE porque tengo otros dispositivos que NO poseen esta función, lo que hace que sea endiabladamente difícil cambiar el volumen cuando cambio de dispositivo. Además, vea mis ediciones sobre teclados bluetooth.

Esta característica está integrada en la propia ROM, por lo que dependerá completamente de lo que el chef cocinó en la ROM.

Puede encontrar ROM como CM9 y AOKP que tienen varias opciones para el control de volumen, pero obligar a los controles de volumen a permanecer estáticos en dispositivos como este donde cambia no es algo que haya visto.

Por favor, no llame a las roms cocinadas de CM y AOKP y sus desarrolladores son chefs. Cocinar una rom es modificarla con una herramienta zip, algo que es trivial y despreciado.

Button Savior es una aplicación que le proporcionará teclas programables en pantalla para todas las teclas físicas de su dispositivo. Aunque requiere un dispositivo rooteado, se afirma que algunas funciones funcionan con dispositivos no rooteados. La versión paga le permitirá personalizar las teclas programables, incluida su posición. Por favor, inténtalo.

No es la solución para mí: no me gusta agregar controles adicionales en pantalla.