前言
framework開發,此博客基於Android10版本,實現修改默認音量大小。 請注意此博客演示的修改默認音量是如下幾個:
- 多媒體默認音量
- 通話默認音量
- 鬧鐘默認音量
- 系統提示音默認音量
其他默認音量,例如默認鈴聲、默認通知聲音等等,這些在Android10已經剝離了AudioService.java
例子:將默認音量設置爲最大
統一最大音量
首先建議修改一下最大音量,因爲在默認系統裏這些鈴聲的最大等級都是不同的,這樣我們需要一一對應去設置指定數值的最大值,這樣太麻煩了,乾脆全部統一。
將AudioService.java下面最大音量的代碼部分,重新修改
路徑 ./frameworks/base/services/core/java/com/android/server/audio/AudioService.java
未修改的源代碼
修改後,爲了方便,我們這邊統一全部修改成15
設置默認音量
路徑 ~/aosp/build/tools/buildinfo.sh
在buildinfo.sh文件中裏增加
echo "ro.config.media_vol_default=15"
echo "ro.config.vc_call_vol_default=15"
echo "ro.config.alarm_vol_default=15"
echo "ro.config.system_vol_default=15"
如下部分代碼:
然後重新編譯
檢查結果
方式一
查看編譯輸出目錄下的結果
zhou@DESKTOP-9QKQBJG:~/aosp$ cat out/target/product/generic_x86_64/system/build.prop
方式二
寫入設備直接查看
代碼分析
這裏解釋下爲什麼在buildinfo.sh裏添加各種ro屬性會改變設備的默認音量。
在AudioService的構造方法裏如下部分,讀取了ro參數,初始化了多媒體默認音量、通話默認音量、鬧鐘默認音量、系統提示音默認音量。
而SystemProperties的參數配置,都來源於system/build.prop, 而build.prop來源於buildinfo.sh的配置。
end