Android源码开发笔记 -- Sound Settings 音量调整相关

在Android8.0的Sound Settings中可以看到调整音量分为三种:Media/Alarm/Ring

当用户点击设置时,设置的值范围分别为:

Media 0--15,Alarm 0--7,Ring 0--7

布局文件位于:packages/apps/Settings/res/xml/sound_settings.xml

实现文件位于:packages/apps/Settings/src/com/android/settings/notification/SoundSettings.java

在VolumeSeekBarPreference.java中会为Media初始化点击设置后要播放的sample音频,而Alarm/Ring会在播放时去读系统设定值。

final Uri sampleUri = mStream == AudioManager.STREAM_MUSIC ? getMediaVolumeUri() : null;

继续追下去可以看到真正设置声音是在frameworks/base/core/java/android/preference/SeekBarVolumizer.java中

可以看到若如上设置了sample media的URI,就不会再去设置,反之就会去找系统的URI

if (defaultUri == null) {
            if (mStreamType == AudioManager.STREAM_RING) {
                defaultUri = Settings.System.DEFAULT_RINGTONE_URI;
            } else if (mStreamType == AudioManager.STREAM_NOTIFICATION) {
                defaultUri = Settings.System.DEFAULT_NOTIFICATION_URI;
            } else {
                defaultUri = Settings.System.DEFAULT_ALARM_ALERT_URI;
            }
        }

真正设置系统音量的API如下:

mAudioManager.setStreamVolume(mStreamType, mLastProgress,
                        AudioManager.FLAG_SHOW_UI_WARNINGS);
时间: 2024-08-29 01:40:08

Android源码开发笔记 -- Sound Settings 音量调整相关的相关文章

Android源码开发笔记

Android 源码获得与编译 http://blog.csdn.net/luoshengyang/article/details/6559955 在Android源码中创建应用程序工程 http://blog.csdn.net/luoshengyang/article/details/6580267 如何单独编译android源代码中的模块 http://blog.csdn.net/luoshengyang/article/details/6566662

Android源码开发利器——Java源码调试(基于4.1.2)

原文地址:http://blog.csdn.net/jinzhuojun/article/details/8868038 调试Android Java源码 草帽的后花园--Neo 写在之前的话:这里主要是以调试Java源码为主,应该说是在system_process之后的源码,这对于调试和修改frameworks层的人来说真是一个利器,但至于为什么在system_process之后,我还在分析,如果有结果我会更新此文章,并正在尝试调试C++的代码,就是native中的代码,如果这个可行那将会大大

android 源码开发 关于编译等小知识点总结

fastboot flash boot out/target/product/generic/boot.img不管用,提示< waiting for device >   原因查找:   用fastboot命令查看设备提示无权限,如下:      $ fastboot -l devices      no permissions         fastboot usb:2-1.3   于是知道是因为权限问题,是fastboot没有权限, 解决步骤:   1. 将fastboot的所有者属性改

Android源码AOSP之设置Settings阅读记录

Android 4.4 系统的设置源码阅读记录 ----------2014-7-3------------------ AndroidManifest.xml launch的activity是 Settings,另外有40多个activity继承于它,比如设置的一级菜单: wifi,蓝牙,声音,显示,安全,应用程序,语言和时间,关于设备等等.实际上都是这一个acitivy. 这里从安全设置看起,SecuritySettings.java 以资源文件R.xml.security_settings

Ubuntu 14.04.1 配置 Android 源码开发环境

# Ubuntu 14.04.1 1.更新源: sudo apt-get update 安装vim工具: sudo apt-get install vim 2.设置Android SDK Tools等环境 我的Android SDK解压在了/home/rengh/adt-bundle/目录下,So: 增加全局变量: sudo vim /etc/profile 添加以下内容: # Set Android SDK enviroment. ANDROID_HOME=/home/rengh/adt-bu

Android 源码阅读笔记

Zygote: 1.Zygote 是系统启动之后创建的第二个进程2.Zygote 创建zygote Socket.虚拟机3.Zygote 在虚拟机中通过forkSystemServer, 创建Server进程, 并且在其中启动服务(AMS.PMS等)4.Zygote 在虚拟机中注册zygote套接字,循环监听AMS的请求,创建新的进程 Server: (PS:版本不同,创建服务的方法也有很大不同,以下为5.1.1版本) 1.Zygote fork自己,为Server创建新的子进程之后,调用han

Android核心服务解析篇(二)——Android源码结构分析

获得Android源码后,我们来分析源码结构.源码的全部工程分为如下三个部分. ①Core Project:核心工程部分,这是建立Android系统的基础,保存在根目录的各个文件夹中. ②External Project:扩展工程部分,可以使其他开源项目具有扩展功能,保存在external文件夹中. ③Package:包部分,提供了Android的应用程序,内容提供者,输入法和服务,保存在package文件夹中. 在获取的Android4.3源码目录中,包含了原始Android的目标机代码,主机

Linux Mint 安装、配置及搭建Android源码编译环境

用过ubuntu,现在想换换Linux Mint试试看.下面是我安装配置Linux Mint13的过程.1.安装 安装LinuxMint13时,我尝试了好多种方法,都失败了.最后选用了硬盘安装.硬盘安装Linuxmint和安装ubuntu一样.1.1.准备工作 1.从linux mint的官方网站http://www.linuxmint.com/ 下载linux mint 13. 2.下载grub4dos,http://www.linuxidc.com/Linux/2009-01/18027.h

获取 + 查看 Android 源码的 方法

Android源码获取方法. 作为一个Android开发者,必要的时候阅读以下源码可以拓宽一下自己的视野和对android的认知程度. Google的Android的源码管理仓库是用的是Git.Android是一个开源手机终端系统,基于Linux内核的. 1.下载一个Git客户端,我使用的是Git-1.7.0.2版本 下载地址:http://code.google.com/p/msysgit/ 2.windows下安装Git的客户端软件很方便,和普通软件一样.安装完成后,我们在电脑上建立一个文件