将音频文件设置为铃声
我已将文件保存在 sdcard/media/audio/ringtone
文件夹中。该文件将出现在 settings/sound/phone
Ringtone 的铃声选择列表中。
但我想将该文件设置为我的代码中的铃声。 这是我的代码。
File k = new File(path, filename);
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, "TwiAppclip");
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/*");
values.put(MediaStore.Audio.Media.ARTIST, "cssounds ");
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(k
.getAbsolutePath());
Uri newUri = getApplicationContext().getContentResolver().insert(uri, values);
RingtoneManager.setActualDefaultRingtoneUri(getApplicationContext(),
RingtoneManager.TYPE_RINGTONE, newUri);
这里uri
我得到了但是我得到了newUri = null
。我认为这就是为什么它没有设置为铃声的原因。
有谁知道问题出在哪里吗?如何正确获取 newUri
?
I have save file in sdcard/media/audio/ringtone
s folder. That file will appear in list of ringtone selection from settings/sound/phone
Ringtone.
But I want to set that file as a ringtone from my code.
Here is my code.
File k = new File(path, filename);
ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, "TwiAppclip");
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/*");
values.put(MediaStore.Audio.Media.ARTIST, "cssounds ");
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(k
.getAbsolutePath());
Uri newUri = getApplicationContext().getContentResolver().insert(uri, values);
RingtoneManager.setActualDefaultRingtoneUri(getApplicationContext(),
RingtoneManager.TYPE_RINGTONE, newUri);
here uri
I am getting But I got newUri = null
. I think that's why its is not setting as ringtone.
Anyone know where is the problem? how do I get newUri
proper?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
音频仅设置为铃声一次,但此问题的解决方案是 - 如果您尝试再次运行相同的代码,您将在 MediaStore 的表中插入重复的条目,但 SQLite 数据库不允许您这样做。您必须重命名文件并添加它的另一个实例,或者进入,删除该条目,然后重试。所以我每次都删除该条目,然后再次插入。
Audio is set as ringtone only once, but solution to this problem is - If you are trying to run the same code again, you'll be inserting a duplicate entry into MediaStore's table, but the SQLite database won't allow you. You have to either rename your file and add another instance of it, or go in, remove the entry, and then try again. So I removed that entry every time and then insert it again.
您可以重用它,而不是删除之前插入的 uri:
Instead of deleting the previously inserted uri, you can reuse it:
我认为这会解决你的问题。
I think this will solve ur problem.