9 votes

Comment puis-je modifier le volume à distance ?

À la maison, je connecte souvent mon Android à des haut-parleurs, pour écouter la radio sur Internet. J'aimerais pouvoir modifier le niveau sonore par une commande sur mon ordinateur portable.

Je peux ouvrir un shell ssh sur le téléphone, mais je suis bloqué pour trouver une commande permettant de modifier le volume sur Android.

Existe-t-il une commande pour modifier le volume audio sur le shell Android ? Ou peut-être existe-t-il une approche différente sans ssh que j'ai complètement ratée ?

J'utilise Android 4.1.

Modifier

La réponse acceptée devrait fonctionner pour les appareils enracinés. Je suis toujours désireux d'obtenir une réponse pour un appareil non enraciné.

13voto

ce4 Points 14264

Jetez un coup d'œil à simuler des événements de touche sur Android et recherchez "KEYCODE_VOLUME_UP" et "KEYCODE_VOLUME_DOWN".

Les événements peuvent être générés par l'exécution d'une "entrée" :

#local shell:
input keyevent 24 #vol up
input keyevent 25 #vol down
#remotely using ssh
ssh your-phone input keyevent 24 #vol up
ssh your-phone input keyevent 25 #vol down

# 'su -c command' to make it run as root (if not already). EDIT: now escaped properly.
ssh your-phone su -c "input\ keyevent\ 24" #vol up
ssh your-phone su -c "input\ keyevent\ 25" #vol down"

Votre shell a besoin de permissions appropriées, très probablement pour déclencher des événements d'entrée, je suppose. Si vous utilisez l'authentification par clé publique et que vous gardez votre clé privée en mémoire (ssh-add), vous pouvez créer un script enveloppant et l'exécuter sans qu'on vous demande une phrase de passe. Note : Il y a une surcharge considérable pour 'su' et 'input', en tout et pour tout un seul réglage de volume prend 2,5s à compléter sur mon HTC Desire.

EDIT2 :

shell@android:/ $ id
uid=2000(shell) gid=2000(shell) groups=1003(graphics),1004(input),[...]
shell@android:/ $ time input keyevent 24                                       
    0m0.92s real     0m0.29s user     0m0.06s system

Il semble que vous devez être membre du groupe d'entrée (ici GID=2004) pour avoir la possibilité de générer des événements clés en utilisant 'input'. De plus, j'ai remarqué que l'écran ne doit pas être verrouillé (et/ou éteint), parce que le verrouillage consommerait tous les keyevents éventuellement. Notez aussi que la commande prend presque 1 seconde.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X