最近客户有个需求,要给设备加上开关机的铃声,网上搜了一下,开机铃声已经有解决办法,直接修改bootanimation实现,但是关机铃声却没有好的实现方法,于是决定自己来实现这个功能。

首先要确定实现这个功能代码往哪里添加,从关机流程入手,长按电源键弹出关机菜单,这部分代码在PhoneWindowManager.java中,网上很多文章都分析过了,代码一直往下追,跳过关机菜单部分,发现android关机的代码最后都要走到frameworks/base/core/java/com/android/internal/app/ShutdownThread类中shutdown()这个方法中来,看了一下,这个方法就是系统进入关机流程的入口,这个方法中还会弹出确认对话框,然后调用beginShutdownSequence()弹出关机进度框。

真正的关机操作就在ShutdownThread类的run方法中,最后决定在run的一开始添加相关代码,实现很简单,就是播放一段音频,因为铃声文件比较小,所以使用SoundPool来播放,新开一个线程来播放音频,代码如下:

(new Thread(){

public void run() {

Log.i(TAG, "Shutting down music play~~~~~~~~~~~");

SoundPool soundPool = new SoundPool(3, AudioManager.STREAM_SYSTEM, 0);

soundPool.load("/system/media/power_off.mp3", 0);

Thread.sleep(1000);

soundPool.play(1,1, 1, 0, 0, 1);

}

}).start();

这里线程休眠1秒是为了确保音频文件load成功,也可以调整铃声开始播放的时间。

重新编译framework,将音频文件push到/system/media下(这个目录就是代码中soundPool.load方法的参数),重启一下再关机,铃声响起,大功告成~~

android关机铃声代码,android系统添加关机铃声相关推荐

  1. android 9.0 系统添加开机铃声

    1.概述 在9.0的系统rom定制化开发中,在做一些项目中,有些产品需求要求添加开机铃声,就是在播放开机动画的过程中,播放开机音乐, 在原生系统中,是默认可以播放开机铃声的,接下来来分析下系统关于播放 ...

  2. android系统添加关机铃声

    最近客户有个需求,要给设备加上开关机的铃声,网上搜了一下,开机铃声已经有解决办法,直接修改bootanimation实现,但是关机铃声却没有好的实现方法,于是决定自己来实现这个功能. 首先要确定实现这 ...

  3. android开发笔记之联系人中添加手机铃声功能的实现

    这二天,在联系人(Contacts)的新建编辑界面添加了一个来电手机铃声的功能,现在把一些关键的地方写出来,做一个小笔记吧. 1. 功能需求: 在新建编辑联系人界面,添加一个手机铃声入口,点击可以进入 ...

  4. android 自定义铃声 代码,Android通过代码设置铃声

    对安卓手机进行铃声操作,设置默认铃声.删除当前默认铃声.更改铃声 以默认振铃为例子,通过代码设置手机铃声 设置默认振铃 // 将铃声的路径插入contentResolver,以数据库的形式插入 /** ...

  5. android确认密码代码,Android自定义View实现验证码or密码输入框

    前言 最近项目中有支付功能,用户输入密码时要类似微信支付密码输入框的样式,本想直接copy网上的,但设计姐姐总是对样式挑三拣四,抽空自己自定义了一个,无奈之下抽空自定义了个,并把它贴到GitHub上供 ...

  6. android增删功能代码,Android SQLite增删查改实例代码部分

    在 Android与SQLite数据库 这个专题里我们谈到了 SQLite 的基本应用,但在实际开发中,为了能够更好的管理和维护数据库,我们会封装一个继承自 SQLiteOpenHelper 类的数据 ...

  7. android小球移动代码,Android自定义圆形View实现小球跟随手指移动效果

    本文实例为大家分享了Android实现小球跟随手指移动效果的具体代码,供大家参考,具体内容如下 一. 需求功能 手指在屏幕上滑动,红色的小球始终跟随手指移动. 实现的思路: 1)自定义View,在on ...

  8. android调频收音机代码,android 收音机 FM 驱动 hal层 框架层以及应用层代码

    [实例简介] android 收音机 FM 驱动 hal层 框架层以及应用层代码 方法一 不需要framework部分 1.fm放到 \hardware\rk2x 2.FmRadio 放到 packa ...

  9. android退出app代码,Android应用退出代码各种方式

    1. 点击按钮最小化app返回到home //并不会退出app,只是最小化 findViewById(R.id.button3).setOnClickListener(new OnClickListe ...

  10. android 进度条 代码,Android 进度条使用详解及示例代码

    在这里,总结一下loading进度条的使用简单总结一下. 一.说起进度条,必须说说条形进度条,经常都会使用到嘛,特别是下载文件进度等等,还有像腾讯QQ安装进度条一样,有个进度总给人良好的用户体验. 先 ...

最新文章

  1. ACM入门之【读入、输出优化】
  2. IAR在写结构体时不提示_智能物流装车系统的结构优化与改进
  3. fastdfs的tracker启动之后一直选举_jraft选举策略
  4. 《MySQL必知必会》笔记--数据库基础
  5. C++起航篇——bool类型,输入输出,命名空间
  6. 前后两组结构相同的数据进行比较,找出新增的,需要删除的,原来存在的
  7. 毕马威中国领先地产科技企业50
  8. 基于深度学习的图像修补/完整方法分析
  9. python w3cschool_学习Python必去的8个网站
  10. 21复变函数的积分(七)
  11. 「Ruby Sqlite3」How to install sqlite3 for ruby? (solve: sqlite-ruby no such file...)
  12. .Net资源文件全球化
  13. Centos 7.0 的svn
  14. [黑科技]DNS隧道-绕过wifi热点登陆免费上网
  15. Linux压缩、解压、打包文件 修改文件所属组
  16. 如何修改 linux 命令行登录界面
  17. python计算歌手得分
  18. 奇葩之想让我帮写代码还要白嫖
  19. 【电力系统】——交流潮流、直流潮流
  20. ElasticSearch 学习笔记

热门文章

  1. JAVA多线程编程之异步
  2. 幕布(思维导图)官方版 v1.1.15
  3. 超全深度学习细粒度图像分析:项目、综述、教程一网打尽
  4. 音乐文件加密歌曲转换器mp3
  5. vue 中使用 js-xlsx 导出数据导 excle, 支持多 sheet
  6. 数学建模matlab案例,数学建模案例matlab实用程序百例
  7. CAD/DWG图纸在线浏览/查看/预览/解析插件/SDK
  8. 华为网络技术大赛模拟题目
  9. 薛定谔 Maestro教程--用户界面 | 结构编辑 | 测量距离角度
  10. MATLAB— RGB图像 ==Bayer图像 (bggr, gbrg, grbg, rggb)