android–ContentResolver.insert总是返回null

android–ContentResolver.insert总是返回null,第1张

概述我试图通过按下按钮设置自定义铃声,但从ContentResolver的插入方法获取null.以下是可以设置铃声的代码.我检查了stackoverflow本身,一些用户说它为他们工作,但在我的情况下,我得到变量“newUri”为null声音文件在所需的位置创建,所以我知道“newSoundFile”是可以的.在日志中打印

我试图通过按下按钮设置自定义铃声,但从ContentResolver的插入方法获取null.以下是可以设置铃声的代码.我检查了stackoverflow本身,一些用户说它为他们工作,但在我的情况下,我得到变量“newUri”为null

声音文件在所需的位置创建,所以我知道“newSoundfile”是可以的.
在日志中打印“值”变量时,给出以下内容.

值为Title =我的铃声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);
总结

以上是内存溢出为你收集整理的android – ContentResolver.insert总是返回null全部内容,希望文章能够帮你解决android – ContentResolver.insert总是返回null所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1116402.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存