Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 安卓设置铃声失败_Java_Android - Fatal编程技术网

Java 安卓设置铃声失败

Java 安卓设置铃声失败,java,android,Java,Android,我尝试了以下代码,但它没有设置铃声。“ff”的logcat条目表示null,因此我猜URI没有正确连接,我似乎无法找出代码中哪里出错了 String filepath =Environment.getExternalStorageDirectory().toString()+"//media//audio//ringtones//bluemoon.mp3"; File ringtoneFile = new File(filepath);

我尝试了以下代码,但它没有设置铃声。“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);

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

audio/mpeg
audio/mp3

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

您可能需要修复的另一个问题是您的铃声文件声明语句,请尝试将其更改为与以下内容匹配:

File k = new File(path, "mysong.mp3");
还有,我感觉你的路也被打破了

Environment.getExternalStorageDirectory().toString()+"//media//audio//ringtones//bluemoon.mp3"
为什么要用这两个“/”?

它应该是(例如):

../sdcard/media/ringtone