6 votos

"errors are error" al intentar controlar el volumen del dispositivo a través de ADB

Estoy intentando cambiar el volumen en mi dispositivo a través de ADB.

Cuando por ejemplo ejecuto

adb shell media volume --stream 15 --set 0

...se devuelve este error (con respecto a los flujos de volumen):

/system/bin/sh: media: inaccessible or not found

Oneplus 5T, LineageOS 18.1 (Android 11)

Documentación de Android

9voto

Firelord Puntos 161

En Android 11 y Android 12, la utilidad media ya no está disponible. Es por eso que recibiste el error, ya que tu shell no pudo encontrar la utilidad en las ubicaciones mencionadas en su PATH. Los comandos de esa utilidad se han movido a un servicio llamado MediaSessionService. Para acceder a esos comandos, invoca este servicio usando el comando cmd.

adb shell cmd media_session

Ejemplo:

$ **cmd media\_session**                                                                                                                           
uso: media\_session \[subcomando\] \[opciones\]
       media\_session dispatch KEY
       media\_session dispatch KEY
       media\_session list-sessions
       media\_session monitor 
       media\_session volume \[opciones\]

media\_session dispatch: envía una tecla de medios al sistema.
                KEY puede ser: play, pause, play-pause, mute, headsethook,
                stop, next, previous, rewind, record, fast-forword.
media\_session list-sessions: muestra una lista de las sesiones actuales.
media\_session monitor: monitorea las actualizaciones de la sesión especificada.
                       Usa la etiqueta de list-sessions.
media\_session volume:  las opciones son las siguientes: 
                --stream STREAM selecciona el flujo a controlar, ver AudioManager.STREAM\_\*
                                controla AudioManager.STREAM\_MUSIC si no se especifica un flujo
                --set INDEX     establece el valor del índice de volumen
                --adj DIRECCIÓN ajusta el volumen, usa raise|same|lower para la dirección
                --get           muestra el volumen actual
                --show          muestra la interfaz de usuario durante el cambio de volumen
        **_ejemplos_**:
                adb shell media volume --show --stream 3 --set 11
                adb shell media volume --stream 0 --adj lower
                adb shell media volume --stream 3 --get

La sección de ejemplos arriba no ha sido actualizada en el código fuente para reflejar los cambios nuevos, es por eso que todavía recomienda usar media o adb shell media.

0 votos

Todavía obtengo el error al ejecutar media_session list-sessions: /system/bin/sh: media_session: inaccesible o no encontrado. cmd media_session imprime la misma información que en tu respuesta. Espero no haber cometido ningún error obvio, investigaré más sobre esto mañana.

2 votos

Tienes que usar cmd antes de media_session. La utilidad cmd se utiliza para llamar a comandos de shell ofrecidos por los servicios del sistema.

1voto

gonchuki Puntos 2389

Para enviar comandos adb a dispositivos con Android 11 o 12, la sintaxis para controlar el volumen ha cambiado:

adb shell cmd media_session volume --set 10

Esto se utiliza para configurar el volumen en 10 - solo reemplace 10 con el valor deseado.

0 votos

El rango del índice parece estar entre 0 y 25: Error: índice de volumen inválido 60 para el flujo 3 (debería estar en [0..25])

0 votos

Salida para $ cmd media_session volume --set 10: [V] establecerá el volumen en índice=10 \ [V] Conectando a AudioService

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X