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铃声管理

 

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

 

 

 

你可能感兴趣的:(android)