日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

安卓修改默认音量

發(fā)布時(shí)間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 安卓修改默认音量 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文所在的平臺是安卓10

1.修改主要的文件AudioService.java

首先大家可以在安卓源碼/framework?里面搜一下。本平臺的路徑是:

/frameworks/base/services/core/java/com/android/server/audio/AudioService.java

我之前參考過一些舊的安卓源碼,可能不在這個(gè)目錄下,如果發(fā)現(xiàn)與本路徑不同,自行搜索一下這個(gè)文件。如find命令或者grep一下下面代碼的關(guān)鍵詞。

關(guān)鍵代碼:

int maxMusicVolume = SystemProperties.getInt("ro.config.media_vol_steps", -1); //獲取media的最大值if (maxMusicVolume != -1) {MAX_STREAM_VOLUME[AudioSystem.STREAM_MUSIC] = maxMusicVolume;}int defaultMusicVolume = SystemProperties.getInt("ro.config.media_vol_default", -1); //獲取medio的默認(rèn)值if (defaultMusicVolume != -1 &&defaultMusicVolume <= MAX_STREAM_VOLUME[AudioSystem.STREAM_MUSIC] &&defaultMusicVolume >= MIN_STREAM_VOLUME[AudioSystem.STREAM_MUSIC]) {AudioSystem.DEFAULT_STREAM_VOLUME[AudioSystem.STREAM_MUSIC] = defaultMusicVolume;} else {if (isPlatformTelevision()) {AudioSystem.DEFAULT_STREAM_VOLUME[AudioSystem.STREAM_MUSIC] =MAX_STREAM_VOLUME[AudioSystem.STREAM_MUSIC] / 4;} else {AudioSystem.DEFAULT_STREAM_VOLUME[AudioSystem.STREAM_MUSIC] =MAX_STREAM_VOLUME[AudioSystem.STREAM_MUSIC] / 3;}}

代碼主要獲取兩個(gè)安卓的配置:

1.ro.config.media_vol_steps? ???//音量最大值

2.ro.config.media_vol_default? //開機(jī)時(shí),音量默認(rèn)值

如果在安卓的配置文件沒有正確的獲取參數(shù),則會預(yù)設(shè)默認(rèn)值。

那么,我們最簡單的方法就是在代碼直接寫值:

// int maxMusicVolume = SystemProperties.getInt("ro.config.media_vol_steps", -1);// Log.e(TAG,"oncethings media_vol_steps :"+maxMusicVolume);// if (maxMusicVolume != -1) {// MAX_STREAM_VOLUME[AudioSystem.STREAM_MUSIC] = maxMusicVolume;// }// int defaultMusicVolume = SystemProperties.getInt("ro.config.media_vol_default", -1);// Log.e(TAG,"oncethings media_vol_default :"+defaultMusicVolume);// if (defaultMusicVolume != -1 &&// defaultMusicVolume <= MAX_STREAM_VOLUME[AudioSystem.STREAM_MUSIC] &&// defaultMusicVolume >= MIN_STREAM_VOLUME[AudioSystem.STREAM_MUSIC]) {// AudioSystem.DEFAULT_STREAM_VOLUME[AudioSystem.STREAM_MUSIC] = defaultMusicVolume;// } else {// if (isPlatformTelevision()) {// AudioSystem.DEFAULT_STREAM_VOLUME[AudioSystem.STREAM_MUSIC] =// MAX_STREAM_VOLUME[AudioSystem.STREAM_MUSIC] / 4;// } else {// AudioSystem.DEFAULT_STREAM_VOLUME[AudioSystem.STREAM_MUSIC] =// MAX_STREAM_VOLUME[AudioSystem.STREAM_MUSIC] / 3;// }// }//直接賦值MAX_STREAM_VOLUME[AudioSystem.STREAM_MUSIC] = 15;AudioSystem.DEFAULT_STREAM_VOLUME[AudioSystem.STREAM_MUSIC] = 0;

但這樣,在后期的維護(hù)是不方便的,而且也改變了安卓原本的框架。所以我們最好的方法就設(shè)置對應(yīng)值:

ro.config.media_vol_steps和ro.config.media_vol_default。

?

2.修改安卓的默認(rèn)配置prop

配置安卓prop大體上有幾個(gè)地方可以配置:

1.buildinfo.sh? ? 本平臺路徑:/build/tools/buildinfo.sh?

修改方法:增加一行? echo "ro.config.media_vol_default=5"? ?,參照其他怎么寫,學(xué)會照貓畫虎。

2.system.prop?本平臺路徑:/device/xxx/xxx/system.prop?因?yàn)橐C?#xff0c;可以用find命令尋找

修改方法:ro.config.media_vol_default=5 ,同理參照這個(gè)文件的其他。

上面兩個(gè)路徑都可以配置安卓的默認(rèn)配置。可是下面system.prop配置的會覆蓋buildinfo.sh。

如果說buildinfo.sh配置音量為5,system.prop配置音量為10。那么結(jié)果就為10。

ps:上面說的兩個(gè)路徑,是作者本平臺的發(fā)現(xiàn)的路徑,也許其他版本的配置文件不在這里。可以再/out/目錄下面搜索ro.config.media_vol_default這個(gè)配置,基本上可以定位源碼哪里文件。比如,本人在配置buildinfo.sh音量為5后,獲取的值還是原本的15,在grep?out文件后,發(fā)現(xiàn)有個(gè)文件配置是ro.config.media_vol_default=15。那么既可以發(fā)現(xiàn)自己配置對不對,也可以定位具體的文件。

?

3.修改linux配置的權(quán)限(selinux策略)

大部分,修改完prop后,就可以完成修改默認(rèn)音量了。但是有些會獲取失敗,可能要增加linux的策略。

本平臺路徑:/system/sepolicy/public/property.context

修改方法:

ro.config.alarm_alert u:object_r:exported2_config_prop:s0 exact string ro.config.media_vol_steps u:object_r:exported2_config_prop:s0 exact int ro.config.alarm_vol_steps u:object_r:exported2_config_prop:s0 exact int ro.config.system_vol_steps u:object_r:exported2_config_prop:s0 exact int ro.config.notification_sound u:object_r:exported2_config_prop:s0 exact string ro.config.ringtone u:object_r:exported2_config_prop:s0 exact string ro.config.media_vol_default u:object_r:exported2_config_prop:s0 exact int ro.config.alarm_vol_default u:object_r:exported2_config_prop:s0 exact int ro.config.system_vol_default u:object_r:exported2_config_prop:s0 exact int

ps:記得看獲取后的格式,修改音量就是int類型。如何看是否成功獲取:在源碼那里增加Log.i打印即可,開機(jī)后用andriodstdio看就行了。

?

4.?其他可能有用的信息

/frameworks/base/services/core/java/com/android/server/audio/AudioService.java:

public static final int[] DEFAULT_STREAM_VOLUME = new int[] {4, // STREAM_VOICE_CALL7, // STREAM_SYSTEM4, // STREAM_RING8, // STREAM_MUSIC4, // STREAM_ALARM4, // STREAM_NOTIFICATION7, // STREAM_BLUETOOTH_SCO7, // STREAM_SYSTEM_ENFORCED11, // STREAM_DTMF11, // STREAM_TTS4, // STREAM_FM4 // STREAM_MATV};

frameworks\base\media\java\android\media\AudioManager.java:

private int[] MAX_STREAM_VOLUME = new int[] {6, // STREAM_VOICE_CALL7, // STREAM_SYSTEM7, // STREAM_RING13, // STREAM_MUSIC7, // STREAM_ALARM7, // STREAM_NOTIFICATION15, // STREAM_BLUETOOTH_SCO7, // STREAM_SYSTEM_ENFORCED15, // STREAM_DTMF15, // STREAM_TTS13, //STREAM_FM13 //stream_MATV

ps:舊版本好像修改這兩個(gè)地方就可以了,這兩個(gè)路徑屬于本平臺,這兩個(gè)結(jié)構(gòu)體如果找不到,grep去找一下。

?

最后,希望可以幫到大家,如果有用的就收藏一下,白嫖的就點(diǎn)個(gè)贊。

?

?

?

?

?

總結(jié)

以上是生活随笔為你收集整理的安卓修改默认音量的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。