文章目录
背景:串口终端实现应用层音量设置
AudioManager audioManager = (AudioManager)mContext.getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC,
SystemProperties.getInt("ro.sys.def.vol", 30), AudioManager.FLAG_VIBRATE);
平台:Android14
权限:执行adb root。
一:串口命令调用setStreamVolume设置音量
命令:adb shell service call audio 12 i32 3 i32 35 i32 1
(1)参数12:查看frameworks/base/media/java/android/media/IAudioService.aidl
方法setStreamVolume()在IAudioService接口下面排在第几个定义的就是数字几,各Android版本排序不一样。
Android14:
adjustStreamVolume()排第10
setStreamVolume()排第12
Android13:
adjustStreamVolume()排第9
setStreamVolume()排第11
(2)参数i32:表示一个32位的整数参数。
(3)参数3:音频属性的编号,比如STREAM_MUSIC的编号是3
(4)参数35:是音量值,也就是你想要设置的值
(5)参数1:一个特定标志位
二:串口命令调用adjustStreamVolume设置音量
命令:
adb shell service call audio 10 i32 3 i32 -100 i32 1 #设置静音
adjustStreamVolume()方法所需要的操作<-100>参数,可以在AudioManager.java中查看。例如:
三:串口命令调用getStreamVolume查看音量
例如:Android14中getStreamVolume是序号21(查看frameworks/base/media/java/android/media/IAudioService.aidl
)
命令:
service call audio 21 i32 <编号> # 查看当前音量
实际执行
console:/ # service call audio 21 i32 3
Result: Parcel( 00000000 0000001e '........') #十六进制的1e就是十进制的30