将我的res / raw包中的mp3添加到Android的铃声列表中

时间:2011-07-26 16:13:31

标签: android audio notifications mp3 ringtone

如何将我的res / raw应用程序中的mp3添加到Android铃声列表中。 我不想播放它,但要将其添加到铃声列表中。 读过一些话题但仍然很困惑。

2 个答案:

答案 0 :(得分:0)

如果您不介意复制文件,那么让它包含的简单方法就是让您的应用程序将文件放在SD卡下:

[/ SD卡] /媒体/铃声

答案 1 :(得分:0)

只需将所有铃声添加到某个文件夹(必须先创建文件夹)

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"/>

如果您只想从铃声选取器中选择通知,则应将原始mp3文件复制到通知文件夹。这是命名惯例。然后当你设置像这样的铃声选择器

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()))
    );