• 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;
    				}
    			}
    		}
    	}
    }
    


     

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

    贴上一张效果图:

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

  • 相关阅读:
    hibernate关联关系映射
    java单例模式
    HTML如何给table添加滚动条
    jquery的几种ajax方式对比
    JQuery Selectors 方法说明
    jQuery遍历对象/数组/集合
    Jquery常用函数
    【刷题】【省选】ZJOI2017_仙人掌_LOJ2250/Luogu3687_圆方树/dp计数/树形dp
    【学习笔记】圆方树学习笔记
    【模板】【刷题】差分与前缀和_LuoguP5488_多项式
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3148355.html
Copyright © 2020-2023  润新知