如何使用adb shell服务调用音频来更改音量

Oma*_*mar 7 android adb

我正在尝试使用更改我的Android设备上的音量

service call audio 9 i32 50
Run Code Online (Sandbox Code Playgroud)

将音量设置为50%.另外,当我这样做时:

service call audio 16
Run Code Online (Sandbox Code Playgroud)

我能够看到十六进制值是32.但是,我没有看到设备上的任何更改.音量尚未更改.

另一方面,当我通过按下音量增大按钮来改变设备的音量时,我没有看到任何改变service call audio 16.

我想通过设置直接值而不使用来更改音量input keyevent KEY_VOLUME_UP (or DOWN).

有帮助吗?

谢谢!

Oma*_*mar 11

感谢您的快速回复,但我找到了解决方案,即使用

"adb shell service call audio 7 i32 3 i32 0 i32 1"

其中7是"接口IAudioService"列表中的第七个函数:setStreamVolume(int streamType,int index,int flags,String callingPackage),3是speaker,0是音量级别,1是标志.第二个数字(3)代表以下选项:1:电话3:扬声器4:警报6:蓝牙

注意:当我尝试在我的问题中发布的解决方案时,我以root身份运行但是它不起作用.

  • 流类型的剩余选项:''' AUDIO_STREAM_VOICE_CALL = 0、AUDIO_STREAM_SYSTEM = 1、AUDIO_STREAM_RING = 2、AUDIO_STREAM_MUSIC = 3、AUDIO_STREAM_ALARM = 4、AUDIO_STREAM_NOTIFICATION = 5、AUDIO_STREAM_BLUETOOTH_SCO = 6、AUD IO_STREAM_ENFORCED_AUDIBLE = 7、AUDIO_STREAM_DTMF = 8、AUDIO_STREAM_TTS = 9、AUDIO_STREAM_ACCESSIBILITY = 10、 (2认同)

小智 5

对于扬声器-更改媒体音量,将其设置为 0

adb shell service call audio 3 i32 3 i32 0 i32 
Run Code Online (Sandbox Code Playgroud)