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

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

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

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

27.08.2014, 09:27. Просмотров 829. Ответов 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"/>

Можете подсказать, как избавится от ошибки? Спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.08.2014, 09:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка воспроизведении мелодии для уведомления (Программирование Android):

Уведомления - Программирование Android
Приветствую, форумчане! Возникла такая задача, при написании приложения... Нужно чтобы в определённый период каждого месяца приложение...

Ошибка в мелодии - Assembler
Ребят вот такая проблема, должна играть мелодия а у меня или виснит или звук издается типа ультразвука (уши не переносят) - такая фигня...

Ошибка при воспроизведении BASS - Delphi
Здравствуйте, наверное все часто при создании плеера на BASS сталкивались с проблемой, когда в имени файла в плейлисте стоят непонятные...

Ошибка при воспроизведении звука - C#
Посмотрите на приложенный скриншот...

Ошибка при воспроизведении видео - Delphi
Добрый день. Есть список видео, которое размещается в ЛИстБоксе(формируется при загрузке программы). Проигрываем через MediaPlayer. ...

Ошибка при воспроизведении файла mp4 - Delphi
При запуске программа MediaPlayer1.DeviceType := dtAutoSelect; MediaPlayer1.FileName := 'Заставка .mp4'; MediaPlayer1.Open; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
27.08.2014, 09:31 #2
Цитата Сообщение от dubok79 Посмотреть сообщение
На внешнюю/встроенную SD разрешение есть
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Это разрешение на ЗАПИСЬ на ВНЕШНЮЮ карту. Вам нужно READ_EXTERNAL_STORAGE

Добавлено через 40 секунд
В ошибке кстати должно быть указано какого разрешение не хватает, если дело действительно в нем.
0
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
27.08.2014, 09:31  [ТС] #3
А разве WRITE не дает одновременно разрешение на READ?
0
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
27.08.2014, 09:32 #4
Вроде нет, я всегда оба пишу.
1
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.
Т.е., если я правильно понимаю, объявив запись, чтение идет бонусом.
1
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
27.08.2014, 09:35 #6
Вполне возможно, посмотрите в logcat
0
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
27.08.2014, 09:42  [ТС] #7
Посмотрел бы, только не могу произвольный mp3 добавить в список рингтонов. Ошибку видел у знакомого, у которого рингтоном стоит файл находящийся, как я понял, на внешней SD
0
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
27.08.2014, 09:47 #8
Ну поставьте себе такой же рингтон, или возьмите аппарат знакомого, без лога ошибки исправлять только методом тыка)
0
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
Как определить, что рингтон с внешнего?
0
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
27.08.2014, 09:59 #10
Не знаю есть ли стандартный механизм, но я бы сделал так же как у вас, потом проверил на нуль, если нуль то с внешней считать) Но возможно это велосипед.
0
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
27.08.2014, 11:16  [ТС] #11
Я тоже так сделал уже, но тоже думаю, что это как то криво. Ладно, пущай пока будет так.

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

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

Добавлено через 16 минут
Эх...все работает. Забыл в классе инициировать переменную.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.08.2014, 11:16
Привет! Вот еще темы с ответами:

Ошибка при воспроизведении WAV файла - C#
пытался проиграть файл, using System; using System.Media; namespace ConsoleApplication1 { class Program { ...

Ошибка при воспроизведении mp3 в XNA 3.0 - XNA
Привет всем....есть маленькая проблема со звуком! Пытаюсь работать с mp 3. :cry: Выбивает ошибку при попытке воспроизведения: Song...

При воспроизведении файла проигрывателем Windows Media произошла ошибка - C++
//пишем заголовок .wav файла, заполняем его данными struct WAVHEADER { char chunkId; char format; char subchunk1Id; unsigned...

Уведомления для пользователя - PHP
В общем есть модуль новостей, в новостях есть комментарии. Если пользователь создал новость и в его новости кто-то написал...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.08.2014, 11:16
Ответ Создать тему
Опции темы

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