Android: установка звука с SD-карты в качестве мелодии звонка - PullRequest
3 голосов
/ 04 февраля 2011

Я пытаюсь установить мелодию звонка из звука, сохраненного на SD-карту из моего приложения.После просмотра каждого сообщения, которое я мог найти по этому вопросу, я думаю, что я близок, и просто не определяю право URI.

       File ringPath = new File(path, filename);

       ContentValues values = new ContentValues();
       values.put(MediaStore.MediaColumns.DATA, ringPath.getAbsolutePath());
       values.put(MediaStore.MediaColumns.TITLE, "temptitle");
       values.put(MediaStore.MediaColumns.SIZE, ringPath.length());
       values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/ogg");
       values.put(MediaStore.Audio.Media.ARTIST, "tempartist");
       values.put(MediaStore.Audio.Media.IS_RINGTONE, true);

       uri = Uri.fromFile(ringPath);
       RingtoneManager.setActualDefaultRingtoneUri(this, RingtoneManager.TYPE_RINGTONE, uri);

Обычно URI определяется как:

Uri uri = MediaStore.Audio.Media.getContentUriForPath(ringPath.getAbsolutePath());
Uri newUri = main.getContentResolver().insert(uri, values);

Но я не совсем понял смысл во всем этом, и это дало мне довольно неприятные ошибки (не то, чтобы они были, вероятно, немного хуже, чем моя текущая).Я уверен, что это обязательный способ сделать это, но URI в моем коде на самом деле возвращает правильный путь (а другой нет, вероятно, из-за моего неправильного использования), поэтому я не понимаю, почему это не будетРабота.Хотя, честно говоря, я не вижу смысла в том, чтобы все равно использовать для этого URI, вместо того, чтобы указывать пути.

Если кто-нибудь может дать мне небольшое объяснение или связать меня где-нибудь, то ямог бы действительно понять это и обойти эту проблему, я был бы очень благодарен.

Ответы [ 2 ]

0 голосов
/ 24 февраля 2011

Отключите отладку телефона, перейдя в Меню-> Настройки-> Приложения-> Разработка. Затем снимите флажок.Хорошо идти.

0 голосов
/ 04 февраля 2011

Эй, я думаю, что ваш пробник не получает путь. Поэтому я бы порекомендовал вам начать с проверки, действительно ли ваш файл существует, перейдите по этой строке


 File ringPath = new File(path, filename);

используйте код:


boolean b=ringPath.exists();

если он возвращает истину, то вы можете получить URI от it.than после того, как я думаю, что нет ошибки, я могу видеть в вашем коде.

...