Schauen Sie sich die Simulation von Keyevents auf Android an und suchen Sie nach "KEYCODE_VOLUME_UP" und "KEYCODE_VOLUME_DOWN".
Ereignisse können durch Ausführen von "Eingabe" generiert werden:
#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"
Ihre Shell benötigt wahrscheinlich entsprechende Berechtigungen, um Eingabeereignisse auszulösen. Wenn Sie die Authentifizierung mit öffentlichem Schlüssel durchführen und Ihren privaten Schlüssel im Speicher behalten (ssh-add), können Sie ein Wrapper-Skript erstellen und dieses einfach ausführen, ohne nach einer Passphrase gefragt zu werden. Hinweis: Sowohl für 'su' als auch für 'input' entsteht ein erheblicher Overhead. Insgesamt dauert eine einzige Lautstärkeregelung auf meinem HTC Desire 2,5 Sekunden.
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
Es scheint, als müssten Sie Mitglied der Eingabegruppe sein (hier GID = 2004), um Keyevents mithilfe von 'input' generieren zu können. Außerdem habe ich festgestellt, dass der Bildschirm nicht gesperrt (und / oder ausgeschaltet) werden muss, da die Sperre letztendlich alle wichtigen Ereignisse verbrauchen würde. Beachten Sie auch, dass der Befehl fast 1 Sekunde dauert.
I/Input ( 2502): InjectKeyEvent: KeyEvent { action=ACTION_DOWN, keyCode=KEYCODE_VOLUME_UP, scanCode=0, metaState=0, flags=0x0, repeatCount=0, eventTime=399847, downTime=399847, deviceId=-1, source=0x101 } I/Input ( 2502): InjectKeyEvent: KeyEvent { action=ACTION_UP, keyCode=KEYCODE_VOLUME_UP, scanCode=0, metaState=0, flags=0x0, repeatCount=0, eventTime=399847, downTime=399847, deviceId=-1, source=0x101 }
. Ich muss hinzufügen, dass ich neu bei Android bin.