Android RingtoneManager铃声管理

家资是何物,积帙列梁梠。这篇文章主要讲述Android RingtoneManager铃声管理相关的知识,希望能为你提供帮助。

本篇介绍一下跳转到系统铃声选择界面,android中的铃声通过RingtoneManager管理,RingtoneManager管理来电铃声(TYPE_RINGTONE)、提示音(TYPE_NOTIFICATION)、闹钟铃声(TYPE_ALARM)等,RingtoneManager的常用方法包括: 1.getRingtone()      //获取铃声 2.getDefaultUri()      //获取某一铃声类型的默认铃声 3.setActualDefaultRingtoneUri()  //为某一铃声类型设置默认铃声 4.getActualDefaultRingtoneUri(); //获取默认铃声

关于铃声管理,如果你想深究,那就需要到Framework中去查看了,本着实用的考虑,本次不做深挖!!
贴上代码:
[java] view plain copy
  1. < span  style="font-size:14px; "> import  android.app.Activity;    
  2. import  android.content.Context;    
  3. import  android.content.Intent;    
  4. import  android.media.RingtoneManager;    
  5. import  android.net.Uri;    
  6. import  android.os.Bundle;    
  7. import  android.util.Log;    
  8. import  android.view.View;    
  9. import  android.widget.Button;    
  10. import  android.widget.Toast;    
  11.    
  12. public  class  MainActivity  extends  Activity  {   
  13.         private  Button  btn1  =  null;    
  14.         private  static  final  int  Ringtone  =  0;    
  15.         private  Context  mContext;    
  16.    
  17.         @Override   
  18.         public  void  onCreate(Bundle  savedInstanceState)  {   
  19.                 super.onCreate(savedInstanceState);    
  20.                 mContext  =  this;    
  21.                 setContentView(R.layout.activity_main);    
  22.                 btn1  =  (Button)  this.findViewById(R.id.Button01);    
  23.                 btn1.setOnClickListener(new  Button.OnClickListener()  {   
  24.    
  25.                         public  void  onClick(View  arg0)  {   
  26.                                 //  TODO  Auto-generated  method  stub   
  27.                                 //  打开系统铃声设置   
  28.                                 Intent  intent  =  new  Intent(   
  29.                                                 RingtoneManager.ACTION_RINGTONE_PICKER);    
  30.    
  31.                                 //  设置类型为来电   
  32.                                 //  intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,   
  33.                                 //  RingtoneManager.TYPE_RINGTONE);    
  34.    
  35.                                 //  列表中不显示"默认铃声"选项,默认是显示的   
  36.                                 intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT,   
  37.                                                 false);    
  38.    
  39.                                 //  列表中不显示"静音"选项,默认是显示该选项,如果默认"静音"项被用户选择,   
  40.                                 //  则EXTRA_RINGTONE_PICKED_URI  为null   
  41.                                 //  intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT,false);    
  42.    
  43.                                 intent.putExtra(RingtoneManager.EXTRA_RINGTONE_INCLUDE_DRM,   
  44.                                                 true);    
  45.    
  46.                                 //  设置列表对话框的标题,不设置,默认显示"铃声"   
  47.                                 intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE,  "设置来电铃声");    
  48.                                 startActivityForResult(intent,  Ringtone);    
  49.                                    
  50.                         }   
  51.                 });    
  52.         }   
  53.    
  54.         /** 
  55.           *  设置铃声之后的回调函数 
  56.           */   
  57.         @Override   
  58.         protected  void  onActivityResult(int  requestCode,  int  resultCode,  Intent  data)  {   
  59.                 super.onActivityResult(requestCode,  resultCode,  data);    
  60.                 if  (resultCode  !=  RESULT_OK)  {   
  61.                         return;    
  62.                 }  else  {   
  63.                         //  得到我们选择的铃声,如果选择的是"静音",那么将会返回null   
  64.                         Uri  uri  =  data   
  65.                                         .getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);    
  66.                         Log.e("onActivityResult====",  ""  +  uri);    
  67.                         Toast.makeText(mContext,  uri  +  "",  500).show();    
  68.                         if  (uri  !=  null)  {   
  69.                                 switch  (requestCode)  {   
  70.                                 case  Ringtone:   
  71.                                         RingtoneManager.setActualDefaultRingtoneUri(this,   
  72.                                                         RingtoneManager.TYPE_RINGTONE,  uri);    
  73.                                         break;    
  74.                                 }   
  75.                         }   
  76.                 }   
  77.         }   
  78. }   
  79. < /span>    

 
代码中有注释,就不过多废话了!!
贴上一张效果图:
【Android RingtoneManager铃声管理】
Android RingtoneManager铃声管理

文章图片

 
选中铃声,点击“确定”按钮之后,就会立即回调onActivityResult()方法,关于铃声管理方面的内容就先说到这里!!


    推荐阅读