-1

代码:

ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.TITLE, k.getName());
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
if (RingtoneManager.TYPE_RINGTONE == type) {
    values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
} else if (RingtoneManager.TYPE_NOTIFICATION == type) {
    values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);
}
values.put(MediaStore.MediaColumns.SIZE,k.length());
values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath());
getContentResolver().delete(uri, MediaStore.MediaColumns.DATA + """ + k.getAbsolutePath() + "\"", null);
System.out.println("Uri string: "+uri.toString());  //Do you think the output I got here is normal? Output = content: // media / internal / audio / media
Uri newUri = setandsharejava.this.getContentResolver().insert(uri, values);
RingtoneManager.setActualDefaultRingtoneUri(setandsharejava.this,type,newUri);

k=文件

铃声设置为我想要的名称,但播放时使用 android 的默认声音。

没有错误信息。

感谢您的关注。

我查看的标题是否: 如何通过我的活动在 Android 中设置铃声? 将选定的音频文件设置为铃声 如何将文件设置为 Android 10 的铃声? 在 Android 中以编程方式将声音文件设置为铃声和通知 如何以编程方式在 android 中更改铃声? 从 res/raw 文件夹设置铃声 如何在 Android 上为单个联系人设置铃声?

和更多...

4

1 回答 1

0

经过努力,我解决了这个问题。问题是我试图从应用程序的缓存中获取音频文件。将音频文件刻录到 sdcard 分区后,它工作正常。

于 2020-09-08T06:58:07.227 回答