RingtoneManager-获得系统当前的铃声
我们直接看代码
bt1 = (Button) findViewById(R.id.bt1);
bt2 = (Button) findViewById(R.id.bt2);
bt3 = (Button) findViewById(R.id.bt3);
bt2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
//获得手机提示音
if (mNotificationUri_notify == null) {
mNotificationUri_notify = RingtoneManager
.getActualDefaultRingtoneUri(MainActivity.this,
RingtoneManager.TYPE_NOTIFICATION);
}
if (mNotificationUri_notify != null && mRingtone_notify == null) {
String string = mNotificationUri_notify.toString();
tv.setText(string);
mRingtone_notify = RingtoneManager.getRingtone(
getApplicationContext(), mNotificationUri_notify); } if (mRingtone_notify != null) {
if (mRingtone_notify.isPlaying()) {
mRingtone_notify.stop();
} else {
mRingtone_notify
.setStreamType(AudioManager.STREAM_NOTIFICATION);
mRingtone_notify.play();
}
}
}
});
bt1.setOnClickListener(new OnClickListener() { @Override
public void onClick(View arg0) {
//获得手机来电铃声
if (mNotificationUri_telephone == null) {
mNotificationUri_telephone = RingtoneManager
.getActualDefaultRingtoneUri(MainActivity.this,
RingtoneManager.TYPE_RINGTONE);
} if (mNotificationUri_telephone != null
&& mRingtone_telephone == null) {
mRingtone_telephone = RingtoneManager
.getRingtone(getApplicationContext(),
mNotificationUri_telephone);
} if (mRingtone_telephone != null) {
if (mRingtone_telephone.isPlaying()) {
mRingtone_telephone.stop();
} else {
mRingtone_telephone
.setStreamType(AudioManager.STREAM_RING);
mRingtone_telephone.play();
}
} }
});
bt3.setOnClickListener(new OnClickListener() { @Override
public void onClick(View arg0) {
if (mNotificationUri_alarm == null) {
//获得手机闹钟铃声
mNotificationUri_alarm = RingtoneManager
.getActualDefaultRingtoneUri(MainActivity.this,
RingtoneManager.TYPE_ALARM);
}
if (mNotificationUri_alarm != null && mRingtone_alarm == null) {
mRingtone_alarm = RingtoneManager.getRingtone(
getApplicationContext(), mNotificationUri_alarm);
} if (mRingtone_alarm != null) {
if (mRingtone_alarm.isPlaying()) {
mRingtone_alarm.stop();
} else {
mRingtone_alarm
.setStreamType(AudioManager.STREAM_ALARM);
mRingtone_alarm.play();
}
} } });
上面的代码就是获得手机三个铃声的代码。
其实,获得手机铃声的操作也很简单。
它主要就涉及两个类
1.RingtoneManager-铃声管理类
2.Ringtone-铃声操作类
基本上就是三个步骤
1.获得Uri
获得Uri的方法,需要传入一个参数 RingtoneManager.TYPE_NOTIFICATION(STREAM_NOTIFICATION..)就是
这个参数决定了我们获得的是何种提示音
2.获得Ringtone
获得它的方法需要把第一步得到的Uri传进来,就可以得到相应的铃声了
3.操作铃声
直接只用play() stop()控制铃声的停止跟播放。
上面有一个方法
mRingtone_alarm.setStreamType(AudioManager.STREAM_ALARM);
说是设置音频流的,这个音频流到底是什么东西,也不懂,就看到有人说
Android Framework的音频子系统中,每一个音频流对应着一个AudioTrack类 的一个实例,每个AudioTrack会在创建时注册到AudioFlinger中,由AudioFlinger把所有的AudioTrack进行混合 (Mixer),然后输送到AudioHardware中进行播放。AudioTrack和AudioFlinger的通信机制通 常,AudioTrack和AudioFlinger并不在同一个进程中,它们通过android中的binder机制建立联系。
自己查了下资料,感觉应该就是控制什么音频解析的吧
RingtoneManager-获得系统当前的铃声的更多相关文章
- Android之开启手机系统自带铃声
/** * 开启手机系统自带铃声 */ private void startAlarm() { mMediaPlayer = MediaPlayer.create(this, getSystemDef ...
- iOS 播放系统自带铃声
播放声音代码例子 https://github.com/baitongtong/git-.git 给一个国外网址,苹果系统铃声以及自定义铃声免登陆免费下载:http://www.zedge.net/r ...
- ios系统铃声调用方法
首先,这里我要说明这里并非真正调用系统内部自带的铃声,由于苹果是不同意开发人员调用的,没有给开发人员接口.假设调用了就无法上线的! 那为什么AppStore里面还有那么多app显示的效果是调用系统的铃 ...
- Android MTK平台 客制化系统来电界面(屏蔽 InCallUI 提供接口给客户自行展示来电去电页面)
OS: Android 8.1 需求分析 1.禁止系统来电铃声,提供接口给客户自己播放铃声 2.禁止系统拉起来去电页面(InCallActivity),消息通知客户拉起自己的来去电页面 3.禁止来电消 ...
- iOS播放铃声及震动,适用于扫描、新消息等
iOS播放铃声或者设置震动实现: 铃声: SystemSoundID soundID = 1007; AudioServicesPlaySystemSound(soundID); ...
- Android系统默认设置
修改Settings源码,可修改系统设置项,Settings数据被存放于com.android.providers.settings/databases/settings.db中,如果想修改系统启动后 ...
- iPhone系统常用文件夹位置
1. [/Applications] 常用软件的安装目录 2. [/private /var/ mobile/Media /iphone video Recorder] iphone v ...
- [转]android系统各种音量的获取与设置
获取系统音量 通过程序获取android系统手机的铃声和音量.同样,设置铃声和音量的方法也很简单! 设置音量的方法也很简单,AudioManager提供了方法:publicvoidsetStreamV ...
- android系统各种音量的获取与设置
获取系统音量 通过程序获取android系统手机的铃声和音量.同样,设置铃声和音量的方法也很简单! 设置音量的方法也很简单,AudioManager提供了方法: publicvoidsetStream ...
随机推荐
- MySql中允许远程连接
要达到这个目的需要实现两点 开通用户权限 解除本地绑定 开通用户权限 首先登陆服务器端的mysql //不使用空格可以直接登陆 mysql -u用户名 -p密码 mysql> use mysql ...
- java钩子函数
也不知道我理解的对不对,欢迎大家讨论! 自己写了个钩子函数,我理解的钩子函数: public interface Transactioner { String wedontknow() ; } pub ...
- Strom 简介,ppt
数据的生成可以看做一连串发生的离散事件, 这些事件流会伴随着不同的数据流.操作和分析,都会由一个通用的软件框架和基础设施来处理. Storm 是 实时流计算框架之一.它提供了可容错 ...
- STL 源代码剖析 算法 stl_algo.h -- search
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie search --------------------------------------- ...
- Android GridView LruCache
照片墙这种功能现在应该算是挺常见了,在很多应用中你都可以经常看到照片墙的身影.它的设计思路其实也非常简单,用一个GridView控件当作“墙”,然后随着GridView的滚动将一张张照片贴在“墙”上, ...
- 14.idea右键单击没有 svn选项处理办法
转自:http://www.cnblogs.com/xiohao/p/5044213.html 问题一: IntelliJ IDEA打开带SVN信息的项目不显示SVN信息,项目右键SVN以及图标还有C ...
- html 下载文件代码
首先在html中加个a标签 <a class="menu" href="/cmdb/file_down" download="ljctest.t ...
- OpenGL编程逐步深入(三)在窗口中显示一个三角形
这一节教程的内容会比较少,我们仅仅是对上一节教程中的代码进行扩展,在窗口中渲染一个三角形出来. 本节我们以下图所示正方形来讲解OpenGl中的坐标系统.当沿着Z轴负方向看时,可见顶点的坐标必须在这个正 ...
- 图解RHEL6从安装光盘中进行yum安装
图解RHEL6从安装光盘中进行yum安装 导读:我们这里讲的Yum,是Yellow dog Updater, Modified的缩写,可执行程序名为yum,它的理念是使用一个中心仓库(reposito ...
- java引用被设置为null的疑惑
a=null; public class C { protected A webDigester = new A(" first one "); public void test( ...