不多说,先上图,先看一张我开发板的截图  。。。

首先我先解释一下: 由于我的开发板硬件没有调节声音的按键,因而只能在图中所示

处调节,但是在静音之后,那个声音调节又不可点击,所以我们要在静音模式下使其可以点击,也就是可以调节声音。经过上个星期的源代码分析以及一系列的测试,最终我发现在settings.xml文件中的

android:key="ring_volume"

android:dependency="silent"

android:title="@string/all_volume_title"

android:summary="@string/ring_volume_summary"

android:dialogTitle="@string/all_volume_title"

android:persistent="false"

android:streamType="ring" />

代表声音可调节,而删除android:dependency="silent这一句则能在静音下点击声音调节。。。

因而就有了下面在静音模式下可调节声音。

那么我们来看看怎样在静音下仍然可以播放媒体声音:

首先我们在packages/app/Setting/src/的soundsettings.java中可以找到点击静音的事件, onPreferenceTreeClick方法if (preference == mSilent) {

if (mSilent.isChecked()) 中的 mAudioManager.setRingerMode(

vibeInSilent ? AudioManager.RINGER_MODE_VIBRATE

: AudioManager.RINGER_MODE_SILENT);

如果点击静音,那么mAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE),跟进setRingerMode方法到AudioManager.java中的setRingerMode方法,再跟到AudioService.java中的setRingerMode方法,里面有  setRingerModeInt(ringerMode, true);再找到setRingerModeInt方法,

int numStreamTypes = AudioSystem.getNumStreamTypes();//获得系统声音类型的种类如电话声音,媒体声音,铃声等

for (int streamType = numStreamTypes - 1; streamType >= 0; streamType--) {

if (isStreamMutedByRingerMode(streamType)) {

if (!isStreamAffectedByRingerMode(streamType) ||

mRingerMode == AudioManager.RINGER_MODE_NORMAL)//正常情况,也就是不静音

{

mStreamStates[streamType].mute(null, false);//应该是让这种声音可以在静音下仍可以有声音

mRingerModeMutedStreams &= ~(1 << streamType);

}

} else {

if (isStreamAffectedByRingerMode(streamType) &&

mRingerMode != AudioManager.RINGER_MODE_NORMAL)//静音住

{

mStreamStates[streamType].mute(null, true);

mRingerModeMutedStreams |= (1 << streamType);

}

}

里面大概功能就是先获得系统里面的声音类型,如电话声音,media声音,铃声等等。。。

那么我们就是要在静音情况下使得media可以有声音。。。

那么我们可以下循环当中找到当静音时的媒体声音,然后设置它。。

在if (isStreamAffectedByRingerMode(streamType) &&

mRingerMode != AudioManager.RINGER_MODE_NORMAL) 下

也就是静音模式下:修改如下:

if(AudioSystem.STREAM_MUSIC==streamType)

{

mStreamStates[streamType].mute(null, false);//应该是让这种声音可以在静音下仍可以有声音

mRingerModeMutedStreams &= ~(1 << streamType);

}

else

{

mStreamStates[streamType].mute(null, true);

mRingerModeMutedStreams |= (1 << streamType);

}

这样好像就达到了我要实现的目的,然后编译Setting,再替换开发板的Settings.apk

编译framework的base,替换开发板system/framework/framework.jar就ok了

,还有重启机器。。。。

android静音模式,android静音模式下仍可以播放媒体声音以及调节其大小。。。。...相关推荐

  1. android studio在raw文件夹下使用MediaPlayer播放Mp3音乐

    android studio在raw文件夹下使用MediaPlayer播放Mp3音乐 1.在res文件夹下创建raw文件夹 2.在新建好文件夹之后,将MP3文件拖入进刚刚创建好的raw文件夹内 3.使 ...

  2. oracle jmf下载,Ubuntu/Linux下安装JMF播放媒体文件

    下载好并解压JMF2.1.1: 另外再下载MP3插件: 一,把mp3插件解压后的jar拷贝到.../JMF-2.1.1e/lib/下: 二,配置环境变量:  sudo gedit /etc/envir ...

  3. linux声音进程,【转】Linux下的测试和使用声音的工具

    所有的库文件和驱动程序安装之后,就可以着手测试声音了.做这件事,最好从最简单的工具入手 ── 即那些不依赖于驱动程序的.然后,再逐步向"上"测试用到不同的库文件的其它工具.play ...

  4. android系统如何在静音模式下关闭camera拍照声音

    话说为了防止偷拍,业内有不成文规定,手机公司在做camera时,点击拍照和录像键的时候,必须要有提示音.因此,google也就非常人性化的将播放拍照声音的函数,放到了cameraService中,防止 ...

  5. android系统如何在静音模式下关闭camera拍照声音(2)

    之前写过一篇"android系统如何在静音模式下关闭camera拍照声音"的博客,今天来写他的续篇,继续探讨这个问题. 公司新需求,要求在camera应用中添加一个开关,可以进行拍 ...

  6. Android系统移植与调试之-------如何修改Android设备添加重启、飞行模式、静音模式等功能(一)...

    1.首先先来看一下修改前后的效果对比图 修改之后的图片 确认重启界面 具体的修改内容在下一篇中具体介绍. Android系统移植与调试之------->如何修改Android设备添加重启.飞行模 ...

  7. android 自动静音模式,Android实现定时自动静音小助手

    定时静音助手的实现方法,供大家参考,具体内容如下 背景 突发奇想,刚好这学期刚上安卓课程,想设计一个时间助手.工作.学习中经常会被突如其来的电话所打扰,在上班,上课时这突如其来的铃声会惹来别人的反感, ...

  8. ios 获取是否静音模式_iOS 静音模式下播放声音

    每个 iOS 应用都有一个音频会话,可以通过一个 AVAudioSession 类的实例管理app声音的播放形式 AVAudioSession *audioSession = [AVAudioSess ...

  9. Android N App分屏模式完全解析(下)

    转载地址:http://unclechen.github.io/2016/03/12/Android-N-App%E5%88%86%E5%B1%8F%E6%A8%A1%E5%BC%8F%E5%AE%8 ...

最新文章

  1. Go语言之 Struct Tag
  2. ibatis基础(三):查询指定id的单个对象
  3. 使用阿里云ACM简化你的Spring Cloud微服务环境配置管理
  4. web服务器的基本应用
  5. 数据结构动态顺序字符串基本操作实验_技术连载:数据结构 - 栈
  6. ”高精度整数删去若干位以使剩下的值最小“问题
  7. 17.和优化相关的hint
  8. tp5 自定义配置文件
  9. python学习笔记——捌 ScoketServer
  10. torch中permute()函数用法
  11. Mar9th 海尔java面试
  12. Hexo的Next主题详细配置
  13. 项目管理工具 - TAPD
  14. 用计算机怎么计算税率,一般纳税人税率计算器,一般纳税人税率如何计算?
  15. Python数据加密与解密相关操作(hashlib、hmac、random、base64、pycrypto)
  16. iHRM 人力资源管理系统_第7章 POI报表的入门
  17. CF - 1348D | 思维
  18. 平价好用的真无线蓝牙耳机,这五款入门首选超划算
  19. win11照片一打开就是打印怎么办?
  20. 【BYM】Android 仿百度搜索列表滑动效果,flutter环境搭建

热门文章

  1. 关于MeasureString测量字体的长度问题
  2. 数据质量的跨部门合作与协同
  3. 迫于生计,夫妻俩创业开小吃店,走上了致富之路
  4. JAVA调用支付宝直充接口
  5. gradle瘦身/删除没有用的文件
  6. 一文深入了解Linux IO 调度器
  7. linux 提取edid_Linux 硬件信息获取
  8. 让父母小孩都离不开!天猫精灵打造完美智慧生活
  9. 招商银行2019Fintech训练营面试
  10. 敏捷,需要有人喊一声