Java 安卓设置铃声失败
我尝试了以下代码,但它没有设置铃声。“ff”的logcat条目表示null,因此我猜URI没有正确连接,我似乎无法找出代码中哪里出错了Java 安卓设置铃声失败,java,android,Java,Android,我尝试了以下代码,但它没有设置铃声。“ff”的logcat条目表示null,因此我猜URI没有正确连接,我似乎无法找出代码中哪里出错了 String filepath =Environment.getExternalStorageDirectory().toString()+"//media//audio//ringtones//bluemoon.mp3"; File ringtoneFile = new File(filepath);
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);
其可能的数据对于该文件不准确,并导致问题。您可能需要更改:
audio/mpeg
至audio/mp3
和持续时间
到文件的实际持续时间
您可能需要修复的另一个问题是您的铃声文件声明语句,请尝试将其更改为与以下内容匹配:
File k = new File(path, "mysong.mp3");
还有,我感觉你的路也被打破了
Environment.getExternalStorageDirectory().toString()+"//media//audio//ringtones//bluemoon.mp3"
为什么要用这两个“/”?
它应该是(例如):
../sdcard/media/ringtone