2014-01-10 326 views
1

是否有任何Adb命令將音量設置爲特定值?我知道我們可以做ADB命令設置音量?

adb shell input keyevent 

音量上下,但我想把它設置爲一個特定的值。如果我將它更改爲數據庫,那麼我必須重新啓動設備才能反映更改,所以我不想走這條路。沒有任何API可以在不必重新啓動它的情況下更改該值,而必須依賴音量調高和調低?

回答

3

在固定電話上,您可以撥打setMasterVolume()service call audio <code> i32 <volume>。代碼是特定於版本的。假設你想在KitKat設備上將音量設置爲50%。該命令將是:

service call audio 9 i32 50 
+0

在果凍豆上的代碼是一樣的嗎?我曾嘗試使用此方法在果凍豆設備上設置音量,但它似乎不起作用? – TylerD87

+0

閱讀http://ktnr74.blogspot.com/2014/09/calling-android-services-from-adb-shell.html找出適合你的android版本的正確代碼 –

2

我已經使用服務調用音頻測試設置在android 2.3設備上的音量。爲了更通用,您需要研究IBinder和交易編號。

要找出你想要的東西:

亞行shell服務列表包

  • 這會告訴你,你需要看看在一個服務包文件(即藍牙 - com.Bluetooth.IBluetooth )

搜索服務類和 '交易' 在線( 「com.Bluetooth.Ibluetooth交易」)

查找ŧ他源文件並找到Ibinder交易細節。接下來是輸入參數的詳細信息。

即,藍牙的第一筆交易是啓用()。有沒有輸入參數

要使用它發送:

亞行shell服務電話藍牙1.0

應該返回一個包含回答一個包裹。

記住: - 我認爲這是隻爲根設備 - 你會發現交易數量1的偏移量(交易0被調用,服務調用「服務」 1) - 有兩種類型的輸入: I32爲整數或S16爲字符串

要設置音頻存在用於設定體積(事務6)

要使用三個輸入整數它發送:

ADB殼服務呼叫7 I32 3 I32 15 I32 0 這將設置我dia音量爲15(媒體音頻的默認級別數爲15)