我显示一个对话框,用以下代码选择一个原生铃声/文本音:
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));
}
我将上述方法称为:
我有两个问题需要解决:
我必须显示较低的套装按钮
在这两种情况下(即选择铃声时和选择文字音时),原生拨号都会显示“默认铃声”。在选择文字音调时,我必须显示“默认文字音”(在本例中为toneType = RingtoneManager.TYPE_NOTIFICATION)。
有没有办法解决这些问题?我们可以自定义原生音调选择器吗?
提前感谢您的答案!
问候。
答案 0 :(得分:0)
要设置默认铃声,您必须先设置EXTRA_RINGTONE_EXISTING_URI。
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, ringtoneUri);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI, ringtoneUri);
答案 1 :(得分:0)
我们可以自定义本机音色选择器吗?
不,抱歉,与您描述的项目无关。您将需要为此构建自己的UI。
答案 2 :(得分:0)
我不确定是否有可能。此外,不能保证RingtonePreference将打开系统的铃声选择器。用户可能安装了另一个应用程序,该应用程序具有在清单中声明的android.intent.action.RINGTONE_PICKER意向过滤器的活动,甚至可能将其用作默认的铃声选择器。
您可以实现自定义的RingtonePreference和自定义的RingtonePickerActivity,并强制打开自定义的“铃声选择器”,但可能会激怒用户。
如果我要问的话,您为什么要更改它?