[英]ContentResolver.insert always returning null
我正在嘗試通過按下按鈕設置自定義鈴聲,但從 ContentResolver 的插入方法中獲取 null。 以下是設置鈴聲的代碼。 我檢查了 stackoverflow 本身,一些用戶說它為他們工作,但在我的情況下,我得到變量“newUri”為空
聲音文件在所需位置創建,所以我知道“newSoundFile”沒問題。 在日志中打印“值”變量時,會給出以下內容。
值為 title=my ringtone is_notification=true mime_type=audio/mp3 is_alarm=true is_ringtone=true _size=8733 is_music=false artist=None _data=/mnt/sdcard/media/ringtone/myringtone.mp3
try
{
uri = MediaStore.Audio.Media.getContentUriForPath(newSoundFile.getAbsolutePath());
Log.d("Test", uri.toString());
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, newSoundFile.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, "my ringtone");
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
values.put(MediaStore.MediaColumns.SIZE, newSoundFile.length());
values.put(MediaStore.Audio.Media.ARTIST, "None");
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, true);
values.put(MediaStore.Audio.Media.IS_ALARM, true);
values.put(MediaStore.Audio.Media.IS_MUSIC, false);
Log.d("Test","Values are "+values.toString());
newUri = mCr.insert(uri, values);
}
catch (Exception ee)
{
Log.d("Test", "Exception is " + ee);
}
if(newUri == null)
Log.d("Test", "newUri is Null");
else
Log.d("Test", "newUri is "+newUri.toString());
使用此代碼。
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, newSoundFile.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, "my ringtone");
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
values.put(MediaStore.Audio.Media.ARTIST, "None");
values.put(MediaStore.MediaColumns.SIZE, 215454);
values.put(MediaStore.Audio.Media.IS_RINGTONE, true);
values.put(MediaStore.Audio.Media.IS_NOTIFICATION, false);
values.put(MediaStore.Audio.Media.IS_ALARM, false);
values.put(MediaStore.Audio.Media.IS_MUSIC, false);
Uri uri = MediaStore.Audio.Media.getContentUriForPath(newSoundFile
.getAbsolutePath());
getContentResolver().delete(
uri,
MediaStore.MediaColumns.DATA + "=\""
+ newSoundFile.getAbsolutePath() + "\"", null);
Uri newUri = getContentResolver().insert(uri, values);
RingtoneManager.setActualDefaultRingtoneUri(
RingtonesPlaying.this, RingtoneManager.TYPE_RINGTONE,
newUri);
不要設置重復的文件名
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.