没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论













Android中默认系统的声音中默认系统的声音/大小修改和配置详解大小修改和配置详解
主要给大家介绍了关于Android中默认系统的声音/大小修改和配置的相关资料,文中通过示例代码介绍的非常详
细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
前言前言
声音管理系统用来实现声音的输入和输出、声音的控制和路由等功能,包括主和各种音源的音量调节、声音焦点控制,声音外
设的检测和状态管理,声音源输入和输出的策略管理、音效的播放、音轨设置和播放、录音设置和启动等功能。
最近在做定制需求的时候,需要修改系统通知的声音,将其禁用掉,避免第三方应用发送通知时,声音很大吓到用户。索性就
把通知声音关掉。下面就说说关闭声音的几种方法,以及修改系统默认声音的方法,分享出来供大家参考学习,下面话不多说
了,来一起看看详细的介绍吧。
本文是基于Android5.1的代码
一、直接修改系统层默认的声音大小一、直接修改系统层默认的声音大小
在系统代码frameworks/base/media/java/android/media/AudioService.java的开头定义了两个数组,一个
MAX_STREAM_VOLUME 这里面定义了各种声音的最大值(最大值不是100,所以需
要AudioManager.getStreamMaxVolume(type)来获取各个音量的最大值),然后进行设置。
还定义了一个数组DEFAULT_STREAM_VOLUME 这里面则和MAX_STREAM_VOLUME里定义的顺序是一样,表明了各种声
音的默认的大小。
此块代码如下:此块代码如下:
/** @hide Maximum volume index values for audio streams */
private static int[] MAX_STREAM_VOLUME = new int[] {
5, // STREAM_VOICE_CALL
7, // STREAM_SYSTEMX_STREAM_VOLUMEMAX_STREAM_VOLUMEMAX_STREAM_VOLUME
7, // STREAM_RING
15, // STREAM_MUSIC
7, // STREAM_ALARM
7, // STREAM_NOTIFICATION
15, // STREAM_BLUETOOTH_SCO
7, // STREAM_SYSTEM_ENFORCED
15, // STREAM_DTMF
15 // STREAM_TTS
};
private static int[] DEFAULT_STREAM_VOLUME = new int[] {
4, // STREAM_VOICE_CALL
7, // STREAM_SYSTEM
5, // STREAM_RING
11, // STREAM_MUSIC
6, // STREAM_ALARM
5, // STREAM_NOTIFICATION
7, // STREAM_BLUETOOTH_SCO
7, // STREAM_SYSTEM_ENFORCED
11, // STREAM_DTMF
11 // STREAM_TTS
};
如果我们需要修改默认的通知声音,则可以将STREAM_NOTIFICATION 前面的数值 5 给为 0即可,这样默认声音就为0 了。
二、修改数据库中的通知声音值二、修改数据库中的通知声音值
媒体声音这些数据在数据库中都会默认的存放数据,我们知道大多数的数据都是系统初次启动的时候在SettingProvider应用中
加载初始化的值,当然通知的声音也在里面。
具体的代码在frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java 其中有
个方法loadVolumeLevels(db) 此方法则是加载所有默认声音大小的地方,具体代码如下:
stmt = db.compileStatement("INSERT OR IGNORE INTO system(name,value)" + " VALUES(?,?);");
loadSetting(stmt, Settings.System.VOLUME_MUSIC, AudioService.getDefaultStreamVolume(AudioManager.STREAM_MUSIC));
loadSetting(stmt, Settings.System.VOLUME_RING, AudioService.getDefaultStreamVolume(AudioManager.STREAM_RING));
loadSetting(stmt, Settings.System.VOLUME_SYSTEM, AudioService.getDefaultStreamVolume(AudioManager.STREAM_SYSTEM));
loadSetting(stmt,Settings.System.VOLUME_VOICE,
AudioService.getDefaultStreamVolume(AudioManager.STREAM_VOICE_CALL));
loadSetting(stmt, Settings.System.VOLUME_ALARM, AudioService.getDefaultStreamVolume(AudioManager.STREAM_ALARM));
loadSetting(stmt,Settings.System.VOLUME_NOTIFICATION,
AudioService.getDefaultStreamVolume(AudioManager.STREAM_NOTIFICATION));
loadSetting(stmt,Settings.System.VOLUME_BLUETOOTH_SCO,
AudioService.getDefaultStreamVolume(AudioManager.STREAM_BLUETOOTH_SCO));
资源评论


weixin_38689027
- 粉丝: 4
- 资源: 890
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制
