Android设置铃声失败

时间:2012-01-15 13:19:12

标签: java android

我尝试以下代码,但没有设置铃声。 “ff”的logcat条目表示null,所以我猜URI没有正确连接?我似乎无法弄清楚我的代码中哪里出错了。

String filepath =Environment.getExternalStorageDirectory().toString()+"//media//audio//ringtones//bluemoon.mp3";
               File ringtoneFile = new File(filepath);
               ContentValues content = new ContentValues();
               content.put(MediaStore.MediaColumns.DATA,ringtoneFile.getAbsolutePath());
               content.put(MediaStore.MediaColumns.TITLE, "test");
               content.put(MediaStore.MediaColumns.SIZE, 215454);
               content.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mpeg");
               content.put(MediaStore.Audio.Media.ARTIST, "artist");
               content.put(MediaStore.Audio.Media.DURATION, 230);
               content.put(MediaStore.Audio.Media.IS_RINGTONE, true);
               content.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);
               content.put(MediaStore.Audio.Media.IS_ALARM, false);
               content.put(MediaStore.Audio.Media.IS_MUSIC, false);
               Log.i("BOOM", "the absolute path of the file is :"+ringtoneFile.getAbsolutePath());
               Uri uri = MediaStore.Audio.Media.getContentUriForPath(
               ringtoneFile.getAbsolutePath());
               Uri newUri = getApplicationContext().getContentResolver().insert(uri, content);
               Uri ringtoneUri = newUri;
               Log.i("ff","the ringtone uri is :"+ringtoneUri);
               RingtoneManager.setActualDefaultRingtoneUri(getApplicationContext(),
               RingtoneManager.TYPE_RINGTONE,newUri);

1 个答案:

答案 0 :(得分:0)

其可能的数据对于文件不准确并且导致问题。您可能需要更改:

audio/mpegaudio/mp3

duration到文件的实际持续时间。

您可能想要解决的另一件事是您的铃声文件声明声明,请尝试将其更改为匹配:

File k = new File(path, "mysong.mp3");

另外,我觉得你的道路也被打破了..

Environment.getExternalStorageDirectory().toString()+"//media//audio//ringtones//bluemoon.mp3"

为什么选择两个“//”?

应该是(例如):

../sdcard/media/ringtone