本篇介绍一下跳转到系统铃声选择界面,android中的铃声通过RingtoneManager管理,RingtoneManager管理来电铃声(TYPE_RINGTONE)、提示音(TYPE_NOTIFICATION)、闹钟铃声(TYPE_ALARM)等,RingtoneManager的常用方法包括:
1.getRingtone() //获取铃声
2.getDefaultUri() //获取某一铃声类型的默认铃声
3.setActualDefaultRingtoneUri() //为某一铃声类型设置默认铃声
4.getActualDefaultRingtoneUri(); //获取默认铃声
关于铃声管理,如果你想深究,那就需要到Framework中去查看了,本着实用的考虑,本次不做深挖!!
贴上代码:
- <span style="font-size:14px;">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;
- }
- }
- }
- }
- }
- </span>
代码中有注释,就不过多废话了!!
贴上一张效果图:
选中铃声,点击“确定”按钮之后,就会立即回调onActivityResult()方法,关于铃声管理方面的内容就先说到这里!!