powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Android [игнор отключен] [закрыт для гостей] / Установить значение RingtonePreference
10 сообщений из 10, страница 1 из 1
Установить значение RingtonePreference
    #39416815
Dmitry Sukhovilin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как пожно програмно установить значние в RingtonePreference ?
Я храню выбор пользователя не в SharedPreferences, а в sql.
Нагуглить не получилось. Возможно кто-то сталкивался с подобным.
...
Рейтинг: 0 / 0
Установить значение RingtonePreference
    #39416861
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какая разница где хранить? Для этого не нужен рингтонпреф.

Выбор (первый метод - реакция на кнопку, второй получение результата):
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
@Click(R.id.buttonBrowseAudio) void selectMedia() {
        Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, true);
        if ((rule.getUri() != null) && (rule.getUri().length() > 0))
            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, Uri.parse(rule.getUri()));
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_NOTIFICATION);
        startActivityForResult(intent, REQUEST_RINGTONE);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == REQUEST_RINGTONE) {
            if (resultCode == RESULT_OK) {
                Uri uri = data.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
                if ((uri != null) && ((rule.getUri() == null) || (!rule.getUri().equals(uri.toString())))) {
                    rule.setUri(uri);
                    textViewUri.setText(formatUri());
                    setChanged(true, false);
                }
            }
        }
    }


Проигрывание рингтона:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
private static void playSound(Context context, String uri) {
        if ((uri != null) && (uri.length() > 0)) {
            Uri sound = Uri.parse(uri);
            Ringtone r = RingtoneManager.getRingtone(context, sound);
            if (r != null) {
                r.play();
            }
        }
    }

...
Рейтинг: 0 / 0
Установить значение RingtonePreference
    #39417037
Dmitry Sukhovilin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadmanКакая разница где хранить? Для этого не нужен рингтонпреф.


Спасибо. Остановлюсь на этом способе, хотя это и обход проблемы, а не решение.
Видно более никак.
...
Рейтинг: 0 / 0
Установить значение RingtonePreference
    #39418286
Dmitry Sukhovilin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не корректно работает звук по умолчанию в телефоне. В эмеляторе, как не странно, все хорошо.

Код: java
1.
2.
3.
4.
5.
Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_NOTIFICATION);
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, getActivity().getString(R.string.prefs_notif_dialog_title));
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false);
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);



Не смотря на установленный тип RingtoneManager.TYPE_NOTIFICATION при прослушивании дефотлного звука воспроизводится рингтон, а не звук уведомления. Если установить EXTRA_RINGTONE_DEFAULT_URI

Код: java
1.
2.
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI,
                RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));



Дефотный звук не воспроизводится.

Весь код:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
private void startRingtoneActivity(String initURI, int requestCode) {
        Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_NOTIFICATION);
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, getActivity().getString(R.string.prefs_notif_dialog_title));
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false);
        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);

        intent.putExtra(RingtoneManager.EXTRA_RINGTONE_DEFAULT_URI,
                RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));

        if (initURI != null) {
            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI,
                    Uri.parse(initURI));
        } else {
            intent.putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI,
                    RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));
        }
        startActivityForResult(intent, requestCode);
    }

...
Рейтинг: 0 / 0
Установить значение RingtonePreference
    #39418620
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry SukhovilinНе корректно работает звук по умолчанию в телефоне.
Звук или его выбор? В коде нет проигрывания звука.
...
Рейтинг: 0 / 0
Установить значение RingtonePreference
    #39420041
Dmitry Sukhovilin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadmanDmitry SukhovilinНе корректно работает звук по умолчанию в телефоне.
Звук или его выбор? В коде нет проигрывания звука.
В пред-прослушивании звука (когда бибираем пункт в меню но еще не нажимаем на ОК).
Defalut получается различным при использовании <RingtonePreference> и RingtoneManager.ACTION_RINGTONE_PICKER.
В первом случае воспроизводится мелодия со звонка, хотя установлен TYPE_NOTIFICATION, а во втором случае воспроизводится правильный звук нотификации.
В onActivityResult призодит звук в соответствии с выбором. Т.е. для RingtoneManager.ACTION_RINGTONE_PICKER возвращается звук звонка но не нотификации.
В эмуляторе все работает правильно.
...
Рейтинг: 0 / 0
Установить значение RingtonePreference
    #39420114
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry SukhovilinВ эмуляторе все работает правильно.
На многих телефонах иначе? Может это проблема конкретного телефона и конкретной прошивки.
...
Рейтинг: 0 / 0
Установить значение RingtonePreference
    #39420342
Dmitry Sukhovilin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadmanDmitry SukhovilinВ эмуляторе все работает правильно.
На многих телефонах иначе? Может это проблема конкретного телефона и конкретной прошивки.
Только на одном :(
Вероятнее всего, что-то не так с ним.
...
Рейтинг: 0 / 0
Установить значение RingtonePreference
    #39420347
Dmitry Sukhovilin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно суть ошибки - не желение телефона отличать рингтон от нотификации.
...
Рейтинг: 0 / 0
Установить значение RingtonePreference
    #39420369
Dmitry Sukhovilin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем все было просто. В андроиде есть Default Notification Sound :)
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / Установить значение RingtonePreference
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]