Добавление mp3 из моего res / raw пакета в список рингтонов Android - PullRequest
2 голосов
/ 26 июля 2011

Как добавить mp3 из моего res / raw приложения в список мелодий для Android.Я не хочу играть, но добавить его в список мелодий звонка.Читал некоторые темы, но все еще в замешательстве.

Ответы [ 2 ]

0 голосов
/ 11 ноября 2012

Просто добавьте все свои мелодии в какую-то папку (папка должна быть создана первой)

InputStream in = getResources().openRawResource(R.raw.ringtone1);
FileOutputStream out = new FileOutputStream("/mnt/sdcard/media/ringtones/ringtone1.mp3");
byte[] buff = new byte[1024];
int read = 0;

try {
   while ((read = in.read(buff)) > 0) {
      out.write(buff, 0, read);
   }
} finally {
     in.close();

     out.close();
}

Не забудьте добавить разрешение

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Если вы хотите выбрать только уведомленияиз Ringtone Picker вы должны скопировать ваш сырой mp3-файл в папку messages .Это соглашение об именах.Затем, когда вы настроите Ringtone Picker следующим образом

Intent intent = new Intent(RingtoneManager.ACTION_RINGTONE_PICKER);
intent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,
    RingtoneManager.TYPE_NOTIFICATION);

Вы увидите свой файл, только если он находится в папке с именем уведомлений .

ОБНОВЛЕНО:

Забыл упомянуть, что вы должны отсканировать свою SD-карту после добавления некоторых новых мелодий / уведомлений.Вот так например:

    mContext.sendBroadcast (
            new Intent(Intent.ACTION_MEDIA_MOUNTED,
                    Uri.parse("file://" + Environment.getExternalStorageDirectory()))
    );
0 голосов
/ 26 июля 2011

Если вы не возражаете против копируемого файла, простой способ включить его в приложение - сбросить файл на SD-карту в приложении:

[/ sdcard] / media / ringtones

...