Android手机铃声代码实现
网上查了很多例子,都有点问题,综合几个自己写了个可以设置铃声、通知声音、闹钟声音和所有声音功能的方法。
首先写一个常量类(定义想要设置为那种铃声的标示):
AppConstant.javapublic interface AppConstant {public static final int RINGTONE = 0; //铃声public static final int NOTIFICATION = 1; //通知音public static final int ALARM = 2; //闹钟public static final int ALL = 3; //所有声音}
此方法需要传入想要设置为铃声的全路径(如:/mnt/sdcard/mp3/a.mp3 ),和想要设置为那种铃声的标示:
private void setVoice(String path2,int id){ContentValues cv = new ContentValues();Uri newUri = null;Uri uri = MediaStore.Audio.Media.getContentUriForPath(path2);// 查询音乐文件在媒体库是否存在Cursor cursor = this.getContentResolver().query(uri, null, MediaStore.MediaColumns.DATA + "=?", new String[] { path2 },null);if (cursor.moveToFirst() && cursor.getCount() > 0){String _id = cursor.getString(0);switch (id) {case AppConstant.RINGTONE:cv.put(MediaStore.Audio.Media.IS_RINGTONE, true);cv.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);cv.put(MediaStore.Audio.Media.IS_ALARM, false);cv.put(MediaStore.Audio.Media.IS_MUSIC, false);break;case AppConstant.NOTIFICATION:cv.put(MediaStore.Audio.Media.IS_RINGTONE, false);cv.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);cv.put(MediaStore.Audio.Media.IS_ALARM, false);cv.put(MediaStore.Audio.Media.IS_MUSIC, false);break;case AppConstant.ALARM:cv.put(MediaStore.Audio.Media.IS_RINGTONE, false);cv.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);cv.put(MediaStore.Audio.Media.IS_ALARM, true);cv.put(MediaStore.Audio.Media.IS_MUSIC, false);break;case AppConstant.ALL:cv.put(MediaStore.Audio.Media.IS_RINGTONE, true);cv.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);cv.put(MediaStore.Audio.Media.IS_ALARM, true);cv.put(MediaStore.Audio.Media.IS_MUSIC, false);break;default:break;}// 把需要设为铃声的歌曲更新铃声库getContentResolver().update(uri, cv, MediaStore.MediaColumns.DATA + "=?",new String[] { path2 });newUri = ContentUris.withAppendedId(uri, Long.valueOf(_id));// 一下为关键代码:switch (id) {case AppConstant.RINGTONE:RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_RINGTONE, newUri);break;case AppConstant.NOTIFICATION:RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_NOTIFICATION, newUri);break;case AppConstant.ALARM:RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_ALARM, newUri);break;case AppConstant.ALL:RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_ALL, newUri);break;default:break;}//播放铃声// Ringtone rt = RingtoneManager.getRingtone(this, newUri);// rt.play();}}
Android手机铃声代码实现相关推荐
- Android开发之手机铃声代码实现
Android开发之手机铃声代码实现 [IT168技术]对于Android应用开发来说,手机铃声是一个非常重要的需求,网上查了很多例子,都有点问题,综合几个自己写了个可以设置铃声.通知声音.闹钟声音和 ...
- Android 手机铃声
前言 欢迎大家我分享和推荐好用的代码段~~ 声明 欢迎转载,但请保留文章原始出处: CSDN:http://www.csdn.net ...
- iphone换android手机铃声,在iPhone中换个自定义铃声要11个步骤 正常人受不了
腾讯科技讯 4月19日,美国科技媒体撰稿人迪特-伯恩(Dieter Bohn)日前购买了一部全新iPhone6S,虽然这一手机的整体使用体验非常不错,但其中有一个细节却让他震惊不已,也让我们不得不重新 ...
- android 自定义铃声 代码,Android通过代码设置铃声
对安卓手机进行铃声操作,设置默认铃声.删除当前默认铃声.更改铃声 以默认振铃为例子,通过代码设置手机铃声 设置默认振铃 // 将铃声的路径插入contentResolver,以数据库的形式插入 /** ...
- android 双卡的铃声设置在哪里,安卓android手机铃声设置方法
android铃声设置另类方法 我们在其他Android手机设置铃声的时候,一般采用的方法都是使用第三方软件(如TongPicker)设置,这样的设置方法有些繁琐,必须在相应的设置箱内启动该程序才能设 ...
- android手机铃声文件夹里,Android手机储存卡上的文件夹铃声不显示是怎么回事
Android储存卡文件夹铃声不显示Android手机设置铃声的方法有很多种,不过最常用的就是在SD卡上设置几个特定名称的文件夹,然后在文件夹中放置铃声文件,然后使用手机自带的铃声设置方法就能查看到S ...
- android 手机铃声获取
转载自:http://www.hlovey.cn/2009/09/24/android-ringtone-ringvolumn.html 通过程序获取android系统手机的铃声和音量.同样,设置铃声 ...
- android 9铃声提取,android 手机铃声获取
通过程序获取android系统手机的铃声和音量.同样,设置铃声和音量的方法也很简单! AudioManager mAudioManager = (AudioManager) getSystemServ ...
- Android手机锁代码研究---我的笔记
2019独角兽企业重金招聘Python工程师标准>>> 开发手机锁软件可以方便带锁的烦恼 代码如下: Android手势密码解锁源代码: code: packagecom.wgs.j ...
最新文章
- C# 一个操作Oracle的简易工具类(通过System.Data.OracleClient)
- Java避免创建不必要的对象
- python(numpy,pandas4)——numpy中array合并和分割
- 贞子的在日本历史出现过的轨迹
- ssl1562-局域网
- (转)postgis常用函数介绍(一)
- spark java 案例_Spark入门案例
- 事件捕获、冒泡、绑定、赋值、委托、兼容、滚轮
- 在线计算机 授课,在线计算机教育网站计蒜客改版 推出算法竞赛课程
- java web 注册登录_javaweb实现登录注册功能实例
- 如何下载微信视频号里的完整视频?
- 我跟Python的孽缘
- 在Excel中查找/替换时使用换行符
- QsciScintilla等编辑器实现不同区域鼠标右键处理方式不同的方法
- load()方法异步请求数据
- linux服务器自动断开,解决centos7服务器用ssh连接老是自动断开问题
- .Net Core 集成 RabbitMQ 订阅与发送
- Mysql迁移到GaussDb_GaussDB T 使用DUMP/LOAD导出导入迁移备份数据
- 基于STM32的智能小车方案设计
- PowerBuilder 8/9 与 SCC的集成(1)