是否有任何Adb命令将音量设置为特定值?我知道我们可以做到
adb shell input keyevent
音量增大和减小但我想将其设置为特定值。如果我更改它,那么我必须重启设备才能反映更改,所以我不想走那条路。是否有任何API我可以更改值而无需重新启动它并且必须依赖于音量增大和减小?
答案 0 :(得分:3)
在有根电话上,您可以使用setMasterVolume()
致电service call audio <code> i32 <volume>
。代码是特定于版本的。假设您想在KitKat设备上将音量设置为50%。命令将是:
service call audio 9 i32 50
答案 1 :(得分:3)
我使用了服务调用音频测试来设置android 2.3设备上的音量。为了更通用,您需要研究IBinder和交易号。
找出你想要的东西:
Adb shell服务列表包
搜索服务类和&#39;交易&#39;在线(&#34; com.Bluetooth.Ibluetooth transaction&#34;)
找到源文件并找到Ibinder交易详情。接下来是输入参数的详细信息。
即蓝牙上的第一笔交易是.is enabled()。没有输入参数
使用它发送:
Adb shell服务呼叫蓝牙1
它应该返回一个包含答案的包裹。
记住: - 我认为这只适用于有根设备 - 您找到的交易号码的偏移量为1(通过服务电话调用交易0&#39;服务&#39; 1) - 有两种类型的输入:i32表示整数,s16表示字符串
要设置音频,设置音量有三个输入整数(事务6)
使用它发送:
Adb shell服务电话7 i32 3 i32 15 i32 0 这会将媒体音量设置为15(媒体音频的默认级别数为15)
答案 2 :(得分:3)
media
shell命令也可以使用:
media volume: the options are as follows:
--stream STREAM selects the stream to control, see AudioManager.STREAM_*
controls AudioManager.STREAM_MUSIC if no stream is specified
--set INDEX sets the volume index value
--adj DIRECTION adjusts the volume, use raise|same|lower for the direction
--get outputs the current volume
--show shows the UI during the volume change
examples:
adb shell media volume --show --stream 3 --set 11
adb shell media volume --stream 0 --adj lower
adb shell media volume --stream 3 --get
第一个示例可能是您要查找的示例(但在询问时可能不存在)
答案 3 :(得分:2)
这是对谁的Android版本太旧而无法在volume
命令中使用media
子命令的人的答案。
由于Alex P的链接,我从这个人的博客中得到了启发: http://ktnr74.blogspot.com/2014/09/calling-android-services-from-adb-shell.html
您可以使用service
命令在Android设备上调用诸如void setStreamVolume(int streamType, int index, int flags, String callingPackage)
之类的函数。我已经尝试使用无根的Android 5.1设备,并且可以正常工作。
Usage: service [-h|-?]
service list
service check SERVICE
service call SERVICE CODE [i32 INT | s16 STR] ...
Options:
i32: Write the integer INT into the send parcel.
s16: Write the UTF-16 string STR into the send parcel.
但是CODE
在Android版本之间有所不同。要查找setStreamVolume()
的代码,请首先在此gist之前保存Bash脚本,更改其执行权限,通过ADB连接设备,并以audio
作为参数运行脚本:>
$ ./get_android_service_call_numbers.sh audio
该脚本从Google提取信息,并向您显示诸如this之类的列表。
所以我们知道setStreamVolume()
的代码是4,因为我们知道the number for STREAM_MUSIC
is 3,所以可以通过以下命令将音乐音量设置为7:
$ adb shell service call audio 4 i32 3 i32 7
我的设备上的最大音乐音量为0xF
,您可以使用int getStreamMaxVolume(int streamType)
函数进行查询:
$ adb shell service call audio 15 i32 3