Android RingtoneManager铃声管理

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

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

贴上代码:

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.media.RingtoneManager;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {
	private Button btn1 = null;
	private static final int Ringtone = 0;
	private Context mContext;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		mContext = this;
		setContentView(R.layout.activity_main);
		btn1 = (Button) this.findViewById(R.id.Button01);
		btn1.setOnClickListener(new Button.OnClickListener() {

			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				// 打开系统铃声设置
				Intent intent = new Intent(
						RingtoneManager.ACTION_RINGTONE_PICKER);

				// 设置类型为来电
				// intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,
				// RingtoneManager.TYPE_RINGTONE);

				// 列表中不显示"默认铃声"选项,默认是显示的
				intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT,
						false);

				// 列表中不显示"静音"选项,默认是显示该选项,如果默认"静音"项被用户选择,
				// 则EXTRA_RINGTONE_PICKED_URI 为null
				// intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT,false);

				intent.putExtra(RingtoneManager.EXTRA_RINGTONE_INCLUDE_DRM,
						true);

				// 设置列表对话框的标题,不设置,默认显示"铃声"
				intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, "设置来电铃声");
				startActivityForResult(intent, Ringtone);
				
			}
		});
	}

	/**
	 * 设置铃声之后的回调函数
	 */
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		super.onActivityResult(requestCode, resultCode, data);
		if (resultCode != RESULT_OK) {
			return;
		} else {
			// 得到我们选择的铃声,如果选择的是"静音",那么将会返回null
			Uri uri = data
					.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
			Log.e("onActivityResult====", "" + uri);
			Toast.makeText(mContext, uri + "", 500).show();
			if (uri != null) {
				switch (requestCode) {
				case Ringtone:
					RingtoneManager.setActualDefaultRingtoneUri(this,
							RingtoneManager.TYPE_RINGTONE, uri);
					break;
				}
			}
		}
	}
}


 

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

贴上一张效果图:

Android RingtoneManager铃声管理_第1张图片

 

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

 

 

你可能感兴趣的:(Android RingtoneManager铃声管理)