`
活着,其实是一种心情-Elvin-Lee
  • 浏览: 15630 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Android手机铃声代码实现

阅读更多

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

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

AppConstant.java

public 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();

       }

    }
 

 

2
1
分享到:
评论
1 楼 mxjma 2012-01-13  
在模拟器上通过 在手机上测试没反映

相关推荐

    Android开发应用实战详解源代码

    5.5 实现手机震动效果 5.6 图文提醒效果 5.7 状态栏提醒 5.8 检索通讯录 5.8.1 实现原理 5.8.2 contentprovider介绍 5.8.3 具体实现 5.9 文件管理 5.10 还原手机桌面 5.11 置换背景图 5.12 修改和删除文件 5.12.1 ...

    《Android应用开发揭秘》附带光盘代码.

    《Android应用开发揭秘》全部实例源代码,配合《Android应用开发揭秘》使用 前言  第一部分 准备篇  第1章 Android开发简介  1.1 Android基本概念  1.1.1 Android简介  1.1.2 Android的系统构架  1.1.3 ...

    Android开发实验---通讯录.docx

    以下功能和软件界面供参考:仿照一般手机通讯录的使用界面和功能,主要功能可包括: (1)可以添加、删减联系人 (2)联系人的信息包括:姓名、手机号码、工作单位、群组、电子邮件、手机铃声 (3)选择联系人后,...

    android音乐播放器

    2,有录音功能,背景图片以及修改手机的闹钟铃声、通知铃声和来电铃声 3,可直接检测sd卡下的音乐 由于这个app偏向于功能开发,所以界面做的一般。第二个activity跳转的按钮在app标题下面,也就是显示歌曲题目的那个...

    google android sdk开发范例大全 第二版 PDF 光盘代码

     2.5 部署应用程序到Android手机  第3章 用户人机界面   3.1 更改与显示文字标签   3.2 更改手机窗口画面底色   3.3 更改TextView文字颜色   3.4 置换TextView文字   3.5 取得手机屏幕大小...

    新版Android开发教程.rar

    将会支持 Google 可能发布的手机操作系统或者应用软件,共同开发名为 Android 的开放源代码的移动 系 统。 谷歌早在 2002 年就进入了移动领域,可是由于目前的手机操作系统企业和手机企业相对封闭,提高了 行业的...

    Android给app设置自定义铃声功能

    因为有个需求是在自己的app中添加铃声并播放,而...三、部分逻辑代码实现 ①调用系统铃声界面传递当前铃声数据,并选择新的铃声 //选择铃声 public void toChoose(View view) { Intent intent = new Intent(Ringtone

    Google Android sdk 开发范例大全 部分章节代码

    2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 3.2 更改手机窗口画面底色——drawable定义颜色常数的方法 3.3 更改TextView文字颜色——引用Drawable颜色常数及...

    《Google Android SDK开发范例大全(第3版)》.pdf

    8.9 设置远程下载音乐为手机铃声 534 8.10 远程下载桌面背景图案 539 8.11 将手机文件上传至网站服务器 542 8.12 移动博客发布器 546 8.13 移动rss阅读器 551 8.14 远程下载安装android程序 560 ...

    Google Android SDK开发范例大全(第3版) 1/5

    全书共分11章,主要以范例集的方式来讲述Android的知识点,详细介绍了开发Android的人机交互界面、Android常用的开发控件、Android手机收发短信等通信服务、开发Android手机的自动服务功能和娱乐多媒体功能以及整合...

    Android应用开发揭秘pdf高清版

    16.3.3 Android.mk实现 16.3.4 Application.mk实现 16.3.5 编译C\C++代码 16.4 AndroidNDK中使用0penGL 16.5小结 第17章 Android脚本环境 17.1 Android脚本环境简介 17.2 Android脚本环境安装 17.3如何编写Android...

    Google Android SDK开发范例大全(第3版) 4/5

    全书共分11章,主要以范例集的方式来讲述Android的知识点,详细介绍了开发Android的人机交互界面、Android常用的开发控件、Android手机收发短信等通信服务、开发Android手机的自动服务功能和娱乐多媒体功能以及整合...

    Google Android SDK开发范例大全(第3版) 3/5

    全书共分11章,主要以范例集的方式来讲述Android的知识点,详细介绍了开发Android的人机交互界面、Android常用的开发控件、Android手机收发短信等通信服务、开发Android手机的自动服务功能和娱乐多媒体功能以及整合...

    android实现来电静音示例(监听来电)

    主要介绍了手机来电铃声响起后,通过此代码实现静音而非挂断的方法的相关资料

    《Android应用开发揭秘》源码

     11.1 手机游戏开发简介  11.2 游戏框架设计  11.3 地图设计  11.4 主角设计  11.5 图层管理器  11.6 游戏音效  11.7 游戏存档  11.8 小结  第四部分 高级篇  第12章 AndroidOpenGL开发基础  12.1 OpenGL...

    android获取情景模式和铃声 实现震动、铃声提醒

    (目前有个OPPO的测试手机就发现,即使调为了静音模式,我依旧可以将铃声播放出来),为了防止“灵异”事件的发生,所以在提示前将情景模式判断以便还是有必要的,特地将代码纪录。 1、获取手机情景模式: ...

Global site tag (gtag.js) - Google Analytics