android 设置默认铃声,Android系统修改默认铃声
Andriod手机的铃声默认保存在system/media/audio/下面,有四个文件夹,分别是alarms,notifications,ringtones,ui。对应闹钟、通知、铃声、UI音效。root的手机可以直接替换修改相应目录下的文件来修改铃声。那这些声音是从哪里来的呢。由于需要修改默认的铃声,就读了一下源码,这里进行记录一下。
在源码中,这些文件保存在frameworks\base\data\sounds目录下面,通过修改相应的mk文件把这些声音文件放到手机的相应目录。手机启动后会调用媒体库对手机内外存储上的多媒体文件进行扫描,保存其URI到媒体库的数据库中。当设置铃声时,会调用媒体库的(mediaProvider)RingtonePickerActivity进行设置。这里铃声Uri保存在数据库中,通过媒体库扫描出来显示个列表供选择。默认铃声的URI保存在设置(Settings)的数据库中,在表system里面。
修改默认铃声
修改mk文件,ro.config.ringtone对应手机默认铃声,ro.config.alarm_alert对应闹钟默认闹铃,ro.config.notification_sound设置通知默认响铃。我这里修改的是/build/target/product/full_base.mk,编译的时候这些值会被编到 build.prop内。
PRODUCT_PROPERTY_OVERRIDES := \
ro.config.ringtone=yami_style1.ogg \
ro.config.alarm_alert=Alarm_Rooster_02.ogg \
ro.config.notification_sound=yami_notification.ogg
在MediaScanner.java中读取并保存配置到设置里面。
private static final String DEFAULT_RINGTONE_PROPERTY_PREFIX ="ro.config.";
private void setDefaultRingtoneFileNames() {
mDefaultRingtoneFilename = SystemProperties.get(DEFAULT_RINGTONE_PROPERTY_PREFIX
+ Settings.System.RINGTONE);
mDefaultNotificationFilename = SystemProperties.get(DEFAULT_RINGTONE_PROPERTY_PREFIX
+ Settings.System.NOTIFICATION_SOUND);
mDefaultAlarmAlertFilename = SystemProperties.get(DEFAULT_RINGTONE_PROPERTY_PREFIX
+ Settings.System.ALARM_ALERT);
}
...
if (TextUtils.isEmpty(mDefaultRingtoneFilename) ||
doesPathHaveFilename(entry.mPath, mDefaultRingtoneFilename)) {
needToSetSettings = true;
}
...
if(needToSetSettings) {
if (notifications) {
setSettingIfNotSet(Settings.System.NOTIFICATION_SOUND, tableUri, rowId);
mDefaultNotificationSet = true;
} else if (ringtones) {
setSettingIfNotSet(Settings.System.RINGTONE, tableUri, rowId);
if (MSimTelephonyManager.getDefault().isMultiSimEnabled()) {
// Set the setting to the given URI for RINGTONE_2
setSettingIfNotSet(Settings.System.RINGTONE_2, tableUri, rowId);
}
mDefaultRingtoneSet = true;
} else if (alarms) {
setSettingIfNotSet(Settings.System.ALARM_ALERT, tableUri, rowId);
mDefaultAlarmSet = true;
}
}
这里看到写入了数据库中。
android 设置默认铃声,Android系统修改默认铃声相关推荐
- Android系统修改默认语言为中文
Android系统修改默认语言为中文 对于Android系统修改默认语言的方法,各个版本的系统方法都差不多一致,至少我在Android5.1和Android9.0使用都成功,具体方法如下: 在buil ...
- 计算机必须设置默认打印机,电脑系统怎么默认打印机 默认打印机的设置教程...
打印机是每个办公室的常用设备之一,我们可以通过打印机将电脑中的重要文件打印出来,常见的比如人员表.个人简历.入职资料等等,如果我们想要将电脑系统中的文件打印出来呢?那么我们就需要在系统中设置默认打印机 ...
- win7系统 修改默认管理员用户名administrator方法
win7系统 修改默认管理员用户名administrator方法
- android系统默认铃声,Android系统修改默认铃声
Andriod手机的铃声默认保存在system/media/audio/下面,有四个文件夹,分别是alarms,notifications,ringtones,ui.对应闹钟.通知.铃声.UI音效.r ...
- android7.0输入法切换,7.0 Android系统修改默认输入法后,切换系统语言时输入法自动切到AOSP的解决办法...
Android 7.0设置默认输入法参考下面的文章 Android修改默认输入法 切换系统语言之后,系统会默认将输入法切换到Andorid Keyboard(AOSP) /frameworks/bas ...
- android设置主题的方法,Android_修改Android App样式风格的方法,android中可以自定义主题和风格 - phpStudy...
修改Android App样式风格的方法 android中可以自定义主题和风格.风格,也就是style,我们可以将一些统一的属性拿出来,比方说,长,宽,字体大小,字体颜色等等.可以在res/value ...
- 设置mysql默认字符集_MySQL之修改默认引擎和字符集
一.数据库引擎 1.1 查看数据库引擎 mysql> show engines; +--------------------+---------+------------------------ ...
- Windows10、centos7双系统修改默认启动引导选项
目录 本文内容说明 本文撰文环境 理解要点 参考连接 正文开始 引言 一.查看/boot/efi/EFI/centos/grub.cfg文件(文末配有文件脚本) 二.修改默认启动选项 三.重启系统(重 ...
- Windows+Ubuntu双系统修改默认开机系统
文章目录 前言 更改/etc/default/grub文件 保存更新 补充 总结 前言 就目前的形式来看,Windows还是主流的操作系统,而对于需要用到Linux开发的朋友们会选择安装虚拟机(比如V ...
最新文章
- day03-字符编码与转换
- NOIP2018 集训(一)
- 12月27日云栖精选夜读:实人认证 - 阿里云实人认证(公测)发布
- event loop那些事儿
- Gradle教程Part2:java工程
- php 未定义数组索引_如何删除PHP数组元素键值并重新排序
- MAC上使用不同版本的xcode编译
- 仿大众点评下拉菜单完成
- 谷歌邮箱lmap服务器填什么_Gmail/QQ邮箱/163邮箱等各大邮箱IMAP/SMTP/POP3地址
- 4. HTML 视频
- zbbix服务器搭建_Linux系统搭建Zabbix监控服务器
- 五大车载操作(VOS)系统优劣对比,车载系统架构分析-QNX系统性能分析
- java测试工程师培训,看这一篇就够了
- 计算机管理上移动硬盘显示其他设备,win7系统拔出移动硬盘提示“该设备正在使用”怎么处理...
- 根据.mdf、.ndf和.ldf文件恢复数据库数据
- redis的nodejs客户端ioredis初识
- 知否:高增长时代已过,汽车互联网玩家如何开拓更多增量?
- 《中国企业家》杂志:卫哲第二道伤疤
- Ribbon使用方法
- 独创:几十行纯php代码解密goto加密的php单文件[仅供学习]
热门文章
- 直播 | COLING 2020 论文解读:基于话题引导的对话推荐系统
- 基于深度学习的多目标跟踪算法——ReID与MOT的联系
- 实习推荐 | 腾讯AI Lab虚拟人中心招聘算法工程师实习生
- 智源-知乎联合发布大规模用户关系数据集,同步开启10万元竞赛
- 头部数据人才24小时图鉴
- 从“猿”到“金刚”,机器学习让你在职业生涯超进化!
- 高效CNN推理库、多款AlphaGo实现…你们喜欢的Github项目精选又来了!
- python 类继承和组合_python3--类与继承和组合
- MySQL【环境搭建 03】腾讯云 Linux 环境踩坑 loading shared libraries: libnuma.so.1 + quit without updating PID file
- MySQL和PGSQL事务锁等待超时时间