Есть ли способ настроить диалог выбора мелодии звонка Android? - PullRequest
5 голосов
/ 26 января 2012

Я показываю диалог для выбора одной из собственных мелодий звонка / текста со следующим кодом:

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. В обоих случаях (т. Е. При выборе мелодии звонка, а также при выборе мелодии текста) собственный набор показывает «Рингтон по умолчанию». Я должен отобразить «Тон текста по умолчанию» в случае выбора тона текста (в этом случае toneType = RingtoneManager.TYPE_NOTIFICATION).

Есть ли способ решить это? Можем ли мы настроить нативное средство выбора тона?

Спасибо за ответы заранее!

С уважением.

Ответы [ 3 ]

0 голосов
/ 18 марта 2019

Можем ли мы настроить нативное средство выбора тона?

Нет, извините, не в отношении предметов, которые вы описываете. Для этого вам нужно создать собственный пользовательский интерфейс.

0 голосов
/ 23 марта 2019

Я не уверен, что это возможно. Кроме того, нет никакой гарантии, что RingtonePreference откроет средство выбора мелодии звонка Системы. У пользователя может быть установлено другое приложение, которое выполняет действие с фильтром намерений android.intent.action.RINGTONE_PICKER , объявленным в манифесте, и даже может иметь его в качестве средства выбора мелодии по умолчанию.

Вы можете реализовать пользовательскую настройку RingtonePreference и пользовательскую RingtonePickerActivity и заставить свой пользовательский инструмент выбора мелодии звонка быть открытым, но вы можете раздражать своих пользователей.

Если я могу спросить, по какой причине вы все равно хотите это изменить?

0 голосов
/ 07 апреля 2013

Чтобы установить мелодию по умолчанию, сначала необходимо установить EXTRA_RINGTONE_EXISTING_URI.

intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, ringtoneUri);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI, ringtoneUri);
...