Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
#1

Ошибка воспроизведении мелодии для уведомления - Программирование Android

27.08.2014, 09:27. Просмотров 753. Ответов 10
Метки нет (Все метки)

Выбираю рингтон для уведомления из списка
Java
1
2
3
4
5
            Intent soundIntent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
            soundIntent.putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, getResources().getString(R.string.ringtone_title));
            soundIntent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_SILENT, false);
            soundIntent.putExtra(RingtoneManager.EXTRA_RINGTONE_SHOW_DEFAULT, true);
            soundIntent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,RingtoneManager.TYPE_NOTIFICATION);
ну и получаю ид рингтона
Java
1
2
3
4
5
6
            try{
                Uri uri = intent.getParcelableExtra(RingtoneManager.EXTRA_RINGTONE_PICKED_URI);
                if (uri != null) {
                    id_ringtone = Integer.parseInt(uri.getLastPathSegment());
                }
            }catch(){}
Если рингтон стандартный (находится во внутренней памяти), то при воспроизведении его ошибки нет. Если рингтон лежит на внешней SD (та, что вторая SD, которую можно самому вставлять), то и имени рингтона нет и при воспроизведении ошибка вылетает. Что за ошибка сказать пока не могу, т.к. воспроизвести ее у себя не получается, т.к. в списке не появляются рингтоны добавленные на карту. Наверное надо что-то запустить.

Ошибка, как мне кажется из-за отсутствия разрешений на вторую SD.
На внешнюю/встроенную SD разрешение есть
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Можете подсказать, как избавится от ошибки? Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.08.2014, 09:27     Ошибка воспроизведении мелодии для уведомления
Посмотрите здесь:
Android Уведомления
Android Push уведомления
Android Push-уведомления
Обновление уведомления Android
Android Ежедневные уведомления
Android Уведомления по времени
Уведомления в BroadcastReceiver Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
27.08.2014, 09:31     Ошибка воспроизведении мелодии для уведомления #2
Цитата Сообщение от dubok79 Посмотреть сообщение
На внешнюю/встроенную SD разрешение есть
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Это разрешение на ЗАПИСЬ на ВНЕШНЮЮ карту. Вам нужно READ_EXTERNAL_STORAGE

Добавлено через 40 секунд
В ошибке кстати должно быть указано какого разрешение не хватает, если дело действительно в нем.
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
27.08.2014, 09:31  [ТС]     Ошибка воспроизведении мелодии для уведомления #3
А разве WRITE не дает одновременно разрешение на READ?
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
27.08.2014, 09:32     Ошибка воспроизведении мелодии для уведомления #4
Вроде нет, я всегда оба пишу.
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
27.08.2014, 09:34  [ТС]     Ошибка воспроизведении мелодии для уведомления #5
Попробую конечно, но в справке написано:
READ_EXTERNAL_STORAGE
Any app that declares the WRITE_EXTERNAL_STORAGE permission is implicitly granted this permission.
Т.е., если я правильно понимаю, объявив запись, чтение идет бонусом.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
27.08.2014, 09:35     Ошибка воспроизведении мелодии для уведомления #6
Вполне возможно, посмотрите в logcat
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
27.08.2014, 09:42  [ТС]     Ошибка воспроизведении мелодии для уведомления #7
Посмотрел бы, только не могу произвольный mp3 добавить в список рингтонов. Ошибку видел у знакомого, у которого рингтоном стоит файл находящийся, как я понял, на внешней SD
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
27.08.2014, 09:47     Ошибка воспроизведении мелодии для уведомления #8
Ну поставьте себе такой же рингтон, или возьмите аппарат знакомого, без лога ошибки исправлять только методом тыка)
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
27.08.2014, 09:54  [ТС]     Ошибка воспроизведении мелодии для уведомления #9
да, все поставил уже. ошибку получил. сейчас посмотрю что там за таракан...

Добавлено через 6 минут
Нашел. При получении Uri рингтона использую
Java
1
ContentUris.withAppendedId(android.provider.MediaStore.Audio.Media.INTERNAL_CONTENT_URI,id);
А для рингтонов с внешнего носителя надо EXTERNAL_CONTENT_URI
Как определить, что рингтон с внешнего?
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
27.08.2014, 09:59     Ошибка воспроизведении мелодии для уведомления #10
Не знаю есть ли стандартный механизм, но я бы сделал так же как у вас, потом проверил на нуль, если нуль то с внешней считать) Но возможно это велосипед.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.08.2014, 11:16     Ошибка воспроизведении мелодии для уведомления
Еще ссылки по теме:
Уведомления Notification Android
Notification Уведомления в Андроид Android
Android Выбор активити из уведомления
Android Запрет всплывающего уведомления
Android Переход из уведомления в фрагмент активити

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
27.08.2014, 11:16  [ТС]     Ошибка воспроизведении мелодии для уведомления #11
Я тоже так сделал уже, но тоже думаю, что это как то криво. Ладно, пущай пока будет так.

Добавлено через 53 минуты
Что-то у меня с EXTERNAL_CONTENT_URI не получается. Пишет ошибку...

Добавлено через 6 минут
Ну опять же, написано, что EXTERNAL_CONTENT_URI, для первичного внешнего носителя. А у меня на вторичном. Как получить его URI.

Добавлено через 16 минут
Эх...все работает. Забыл в классе инициировать переменную.
Yandex
Объявления
27.08.2014, 11:16     Ошибка воспроизведении мелодии для уведомления
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru