实现铃声设置功能:
通过Android 提供的铃声管理器RingtoneManager实现功能:
- 1. 弹出铃声选择器
- 2. 记录上选择的铃声
- 3. 显示静音和默认铃声Item
@Override
public void onClick(View v) {
String uri = null;
try{
uri = RingtoneManager.getActualDefaultRingtoneUri(
getActivity(), RingtoneManager.TYPE_NOTIFICATION)
.toString();
}catch (Exception e) {
}
Intent intent = new Intent(
RingtoneManager.ACTION_RINGTONE_PICKER);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,
RingtoneManager.TYPE_NOTIFICATION); //通知类型,TYPE_RINGTONE,电话 TYPE_NOTIFICATION,通知 TYPE_ALARM,闹铃 or TYPE_ALL
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE,
dialog_title); // 设置标题
intent.putExtra(
RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI,
RingtoneManager
.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));//设置默认通知的uri
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT,
true); //显示默认铃声
if (uri != null) {
intent.putExtra(
RingtoneManager.EXTRA_RINGTONE_EXISTING_URI,
Uri.parse(uri));
}
else {
intent.putExtra(
RingtoneManager.EXTRA_RINGTONE_EXISTING_URI,
(Uri) null);
}
//弹出对话框时选中默认项
startActivityForResult(intent, 0);
// Log.v("MyButton", "setOnClickListener");
}
});
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK) {
if (data != null) {
Uri uri = data
.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
Ringtone r = RingtoneManager
.getRingtone(getActivity(), uri);
if (uri != null) {
switch (requestCode) {
case 0:
RingtoneManager.setActualDefaultRingtoneUri(
getActivity(),
RingtoneManager.TYPE_NOTIFICATION, uri); //选择后设置默认通知
break;
default:
//可以处理不同的类型的默认铃声
break;
}
}
}
}
}
}