Посмотрите на симуляцию ключевых событий на Android и найдите "KEYCODE_VOLUME_UP" и "KEYCODE_VOLUME_DOWN".
События могут быть сгенерированы путем выполнения «ввода»:
#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"
Вашей оболочке нужны соответствующие разрешения, скорее всего, для запуска входных событий. Если вы выполняете аутентификацию с открытым ключом и сохраняете свой закрытый ключ загруженным в память (ssh-add), вы можете создать скрипт-обертку и просто выполнить его без запроса пароля. Примечание. Существуют значительные издержки как для «su», так и для «ввода», в целом, одна настройка громкости занимает всего 2,5 с на моем 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
Похоже, вы должны быть членом группы ввода (здесь GID = 2004), чтобы иметь возможность генерировать ключевые события, используя «ввод». Кроме того, я заметил, что экран не должен быть заблокирован (и / или выключен), потому что блокировка в конечном итоге потребляет все события. Обратите внимание, что команда занимает почти 1 секунду.
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 }
. Я должен добавить, что я новичок в Android.