首先,介绍一下Android系统支持的铃声格式。

有下面几种:

64赫兹Midi,AAC、AAC+、AMR、WAV、MP3、Real Audio、WMA、OGG等格式。

将音频文件设置成铃声非常easy。仅仅需例如以下几步就可以:

1) 获取系统音频文件的Uri

Uri uri =MediaStore.Audio.Media.getContentUriForPath(file.getAbsolutePath());//获取系统音频文件的Uri

2) 将文件插入系统媒体库,并获取新的Uri

Uri newUri = this.getContentResolver().insert(uri,values);//将文件插入系统媒体库。并获取新的Uri

3) 设置铃声

RingtoneManager.setActualDefaultRingtoneUri(this, ringType, newUri);//设置铃声

以下是设置铃声的具体代码:

/**
* 设置铃声
* @param ringType int: 铃声类型
* @param file File: 要设为铃声的文件
* */
protected void setRingtone(int ringType, File file) {
// TODO Auto-generated method stub
boolean isRingtone=false,isNotification=false,isAlarm=false,isMusic=false;
String msg="";
switch (ringType) {
case ConstUtil.RING_ALARM://闹铃
isAlarm=true;
msg="设置闹钟铃声!";
break;
case ConstUtil.RING_NOTIFICATION://通知
isNotification=true;
msg="设置通知铃声成功!";
break;
case ConstUtil.RING_RINGTONE://来电
isRingtone=true;
msg="设置来电铃声成功! ";
case ConstUtil.RING_MUSIC://加入到铃声库(所有铃声)
isMusic=true;
msg="设置所有铃声成功!";
break;
default:
break;
}
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, file.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, file.getName());
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/*");
values.put(MediaStore.Audio.Media.IS_RINGTONE, isRingtone);
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, isNotification);
values.put(MediaStore.Audio.Media.IS_ALARM, isAlarm);
values.put(MediaStore.Audio.Media.IS_MUSIC, isMusic);
Uri uri = MediaStore.Audio.Media.getContentUriForPath(file
.getAbsolutePath());//获取系统音频文件的Uri
Uri newUri = this.getContentResolver().insert(uri, values);//将文件插入系统媒体库,并获取新的Uri
RingtoneManager.setActualDefaultRingtoneUri(this,
ringType, newUri);//设置铃声
Toast.makeText(getApplicationContext(), msg,Toast.LENGTH_SHORT)
.show();
}

版权声明:本文博主原创文章,博客,未经同意不得转载。

Android定调的发展的更多相关文章

  1. Android系统性能调优工具介绍

    http://blog.csdn.net/innost/article/details/9008691 经作者授权,发表Tieto某青年牛的一篇<程序员>大作. Android系统性能调优 ...

  2. 【Java/Android性能优3】Android性能调优工具TraceView使用介绍

    本文转自:http://blog.csdn.net/innost/article/details/9008691 在软件开发过程中,想必很多读者都遇到过系统性能问题.而解决系统性能问题的几个主要步骤是 ...

  3. Android H5调起原生微信或支付宝支付

    Android H5调起原生微信或支付宝支付 WebView调用原生微信或支付宝回调:其原理就是在shouldOverrideUrlLoading(final WebView view, String ...

  4. Android开发环境的发展演变调研

    Android开发环境的发展演变调研 前几年比较多的方法是用JDK+eclipse+ADT,该方法除了要配置JDK的路径之外, 还要在eclipse里面打开SDK Manage进行相应的操作.不过近两 ...

  5. Android性能调优篇之探索垃圾回收机制

    开篇废话 如果我们想要进行内存优化的工作,还是需要了解一下,但这一块的知识属于纯理论的,有可能看起来会有点枯燥,我尽量把这一篇的内容按照一定的逻辑来走一遍.首先,我们为什么要学习垃圾回收的机制,我大概 ...

  6. 【Java/Android性能优2】Android性能调优工具TraceView介绍

    本文参考:http://www.trinea.cn/android/android-traceview/ Android自带的TraceView堪比java的性能调优工具visualvm线程视图,可以 ...

  7. 【Java/Android性能优化1】Android性能调优

    本文参考:http://www.trinea.cn/android/android-performance-demo/ 本文主要分享自己在appstore项目中的性能调优点,包括同步改异步.缓存.La ...

  8. Android性能调优

    本文主要分享自己在appstore项目中的性能调优点,包括同步改异步.缓存.Layout优化.数据库优化.算法优化.延迟执行等.一.性能瓶颈点整个页面主要由6个Page的ViewPager,每个Pag ...

  9. android性能调优之traceview的使用

    1.在开始使用TraceView你要注意: 你的设备和模拟器必须设置SD card 和 你的程序拥有对SD card 具有读写操作的权限( <uses-permission android:na ...

随机推荐

  1. Intent有可能的使用(两)

    Intent作为联系各Activity之间的纽带,其作用并不只只限于简单的数据传递. 通过其自带的属性.事实上能够方便的完毕非常多较为复杂的操作. 比如直接调用拨号功能.直接自己主动调用合适的程序打开 ...

  2. ffplay for mfc 代码备忘录

    在上传一个开源播放器项目ffplay for mfc.它会ffmpeg工程ffplay媒体播放器(ffplay.c)移植到VC环境,而使用MFC做一套接口.它可以完成一个播放器播放的基本流程的视频:解 ...

  3. WPF3D学习,立方体的绘制

    原文:WPF3D学习,立方体的绘制 以此为一个好的开始吧!一直都太懒,坚持写文章是个不错的开始!碰巧最近在研究WPF3D这块的知识,也为了练练自己的写作水平,整理这篇文章.新手上路,多多关照! 本文先 ...

  4. 邮箱password复位图

    blog宗旨:用图说话 辅助文字说明: 长处:用户系统完毕接口部分.界面留给业务自行设计. 缺点:邮箱发送邮件定制模板,没有完毕松耦合. 改进点:邮箱的准备发送邮件模板. 版权声明:本文博客原创文章, ...

  5. java多线程Future和Callable类的解释与使用

    一,描写叙述 ​在多线程下编程的时候.大家可能会遇到一种需求,就是我想在我开启的线程都结束时,同一时候获取每一个线程中返回的数据然后再做统一处理,在这种需求下,Future与Callable的组合就派 ...

  6. Android - 设置ImageView为全屏显示

    设置ImageView为全屏显示 本文地址: http://blog.csdn.net/caroline_wendy ImageView默认会适应屏幕大小, 假设想使用全屏填充, 则须要使用: and ...

  7. 小巧的UML工具-UMLet

    画简单的UML图时非常方便 比如我画blog中的流程图就是用的UMLet

  8. POJ 1384 Piggy-Bank 背包DP

    所谓的全然背包,就是说物品没有限制数量的. 怎么起个这么intimidating(吓人)的名字? 事实上和一般01背包没多少差别,只是数量能够无穷大,那么就能够利用一个物品累加到总容量结尾就能够了. ...

  9. A ResourcePool could not acquire a resource from its primary factory or source

    出处:http://aaron81939097.iteye.com/blog/1144642 原配置: <bean id="dataSource" class="c ...

  10. Android利用网络编程HttpClient批量上传(一个)

    请尊重他人的劳动成果.转载请注明出处:Android网络编程之使用HttpClient批量上传文件 我曾在<Android网络编程之使用HTTP訪问网络资源>一文中介绍过HttpCient ...