网上查了很多例子,都有点问题,综合几个自己写了个可以设置铃声、通知声音、闹钟声音和所有声音功能的方法。

首先写一个常量类(定义想要设置为那种铃声的标示):

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手机铃声代码实现相关推荐

  1. Android开发之手机铃声代码实现

    Android开发之手机铃声代码实现 [IT168技术]对于Android应用开发来说,手机铃声是一个非常重要的需求,网上查了很多例子,都有点问题,综合几个自己写了个可以设置铃声.通知声音.闹钟声音和 ...

  2. Android 手机铃声

    前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net        ...

  3. iphone换android手机铃声,在iPhone中换个自定义铃声要11个步骤 正常人受不了

    腾讯科技讯 4月19日,美国科技媒体撰稿人迪特-伯恩(Dieter Bohn)日前购买了一部全新iPhone6S,虽然这一手机的整体使用体验非常不错,但其中有一个细节却让他震惊不已,也让我们不得不重新 ...

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

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

  5. android 双卡的铃声设置在哪里,安卓android手机铃声设置方法

    android铃声设置另类方法 我们在其他Android手机设置铃声的时候,一般采用的方法都是使用第三方软件(如TongPicker)设置,这样的设置方法有些繁琐,必须在相应的设置箱内启动该程序才能设 ...

  6. android手机铃声文件夹里,Android手机储存卡上的文件夹铃声不显示是怎么回事

    Android储存卡文件夹铃声不显示Android手机设置铃声的方法有很多种,不过最常用的就是在SD卡上设置几个特定名称的文件夹,然后在文件夹中放置铃声文件,然后使用手机自带的铃声设置方法就能查看到S ...

  7. android 手机铃声获取

    转载自:http://www.hlovey.cn/2009/09/24/android-ringtone-ringvolumn.html 通过程序获取android系统手机的铃声和音量.同样,设置铃声 ...

  8. android 9铃声提取,android 手机铃声获取

    通过程序获取android系统手机的铃声和音量.同样,设置铃声和音量的方法也很简单! AudioManager mAudioManager = (AudioManager) getSystemServ ...

  9. Android手机锁代码研究---我的笔记

    2019独角兽企业重金招聘Python工程师标准>>> 开发手机锁软件可以方便带锁的烦恼 代码如下: Android手势密码解锁源代码: code: packagecom.wgs.j ...

最新文章

  1. C# 一个操作Oracle的简易工具类(通过System.Data.OracleClient)
  2. Java避免创建不必要的对象
  3. python(numpy,pandas4)——numpy中array合并和分割
  4. 贞子的在日本历史出现过的轨迹
  5. ssl1562-局域网
  6. (转)postgis常用函数介绍(一)
  7. spark java 案例_Spark入门案例
  8. 事件捕获、冒泡、绑定、赋值、委托、兼容、滚轮
  9. 在线计算机 授课,在线计算机教育网站计蒜客改版 推出算法竞赛课程
  10. java web 注册登录_javaweb实现登录注册功能实例
  11. 如何下载微信视频号里的完整视频?
  12. 我跟Python的孽缘
  13. 在Excel中查找/替换时使用换行符
  14. QsciScintilla等编辑器实现不同区域鼠标右键处理方式不同的方法
  15. load()方法异步请求数据
  16. linux服务器自动断开,解决centos7服务器用ssh连接老是自动断开问题
  17. .Net Core 集成 RabbitMQ 订阅与发送
  18. Mysql迁移到GaussDb_GaussDB T 使用DUMP/LOAD导出导入迁移备份数据
  19. 基于STM32的智能小车方案设计
  20. PowerBuilder 8/9 与 SCC的集成(1)

热门文章

  1. java fault,FaultAction
  2. 迭代求解最优化问题TOA定位——最小二乘问题、高斯牛顿法
  3. 三、线性规划 单纯形法
  4. 从tomcat下载文件
  5. 事件驱动及其设计模式
  6. c语言八进制转二进制
  7. text-shadow属性
  8. 输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。
  9. 35岁,尴尬的年级,被需要还是被嫌弃?
  10. php. format函数,php number_format函数怎么用?