4

我使用以下代码显示一个对话框,用于选择其中一种本机铃声/文本铃声:

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),我必须显示“默认文本音”。

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

感谢您提前回答!

问候。

4

3 回答 3

0

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

intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, ringtoneUri);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI, ringtoneUri);
于 2013-04-06T21:55:12.053 回答
0

我不确定这是否可能。此外,不能保证 RingtonePreference 会打开系统的铃声选择器。用户可能安装了另一个应用程序,该应用程序具有在清单中声明的​​ android.intent.action.RINGTONE_PICKER意图过滤器的活动,他甚至可能将其作为默认铃声选择器。

您可能会实现自定义 RingtonePreference 和自定义 RingtonePickerActivity 并强制打开自定义铃声选择器,但您可能会激怒您的用户。

如果我可以问,你为什么要改变它?

于 2019-03-23T12:18:27.097 回答
0

我们可以自定义原生音色选择器吗?

不,抱歉,与您描述的项目无关。您需要为此构建自己的 UI。

于 2019-03-18T12:02:25.667 回答