2012-01-26 27 views
1

我显示用于选择所述本地铃声/文本音调的一个用下面的代码对话框:有没有办法自定义Android铃声选取器对话框?

private void showTonePicker(int toneType, String pickerTitle) { 
[...] 

Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);

intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, toneType); 
    intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, pickerTitle); 
    intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true); 
    intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, userTone.equals(TFSettings.SILENT_TONE_ID) ? null : Uri.parse(userTone)); 
    startActivityForResult(intent, (toneType == RingtoneManager.TYPE_RINGTONE ? 1 : 2)); 
} 

我调用上述方法是这样的:

  • 用于选择文本色调: showTonePicker(RingtoneManager.TYPE_NOTIFICATION,getString(R.string.texting_tone));
  • 选择铃声: showTonePicker(RingtoneManager.TYPE_RINGTONE,getString(R.string.ringing_tone));

我有两个问题需要解决:

  1. 我必须表现出较低的套管按钮

  2. 在这两种情况下(即,选择铃声以及当选择文本音时),本机dialof显示“默认铃声”。如果选择文本音调(在这种情况下,toneType = RingtoneManager.TYPE_NOTIFICATION),我必须显示“默认文本音调”。

有没有办法解决这些问题?我们可以定制原生音色选择器吗?

感谢您提前给出答案!

问候。

+0

是否有预先选择默认铃声/文字(notifcation)铃声的方法? “intent.putExtra(RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI,Settings.System.DEFAULT_RINGTONE_URI);”似乎不起作用。 – Trimi

+0

我有同样的问题,我不能相信没有人知道答案,尽管这是很常见的任务。你没有找到答案吗? –

回答

0

要设置默认铃声,您必须首先设置EXTRA_RINGTONE_EXISTING_URI。

intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, ringtoneUri); 
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI, ringtoneUri); 
相关问题