Android RingtoneManager铃声管理

Posted brave-sailor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android RingtoneManager铃声管理相关的知识,希望对你有一定的参考价值。

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

关于铃声管理,如果你想深究,那就需要到Framework中去查看了,本着实用的考虑,本次不做深挖!!

贴上代码:

  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>  


 

代码中有注释,就不过多废话了!!

贴上一张效果图:

技术分享

 

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


以上是关于Android RingtoneManager铃声管理的主要内容,如果未能解决你的问题,请参考以下文章

Android RingtoneManager 铃声管理

如何在 Android 中获取当前铃声?

如何将铃声添加到 RingtoneManager?

如何从相应的 Ringtonemanager 获取铃声 URI [重复]

如何从系统声音中获取铃声

RingtoneManager-获得系统当前的铃声