gpt4 book ai didi

android - 检查 Content Resolver 是否有值(value)

转载 作者:行者123 更新时间:2023-11-29 14:39:29 24 4
gpt4 key购买 nike

关注此answer关于如何在 android Activity 中设置铃声,我正在使用此代码:

File k = new File(path, "mysong.mp3"); // path is a file to /sdcard/media/ringtone

ContentValues values = new ContentValues();
values.put(MediaStore.MediaColumns.DATA, k.getAbsolutePath());
values.put(MediaStore.MediaColumns.TITLE, "My Song title");
values.put(MediaStore.MediaColumns.SIZE, 215454);
values.put(MediaStore.MediaColumns.MIME_TYPE, "audio/mp3");
values.put(MediaStore.Audio.Media.ARTIST, "Madonna");
values.put(MediaStore.Audio.Media.DURATION, 230);
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);

//Insert it into the database
Uri uri = MediaStore.Audio.Media.getContentUriForPath(k.getAbsolutePath());
Uri newUri = main.getContentResolver().insert(uri, values);

RingtoneManager.setActualDefaultRingtoneUri(
myActivity,
RingtoneManager.TYPE_RINGTONE,
newUri
);

但是,这会在我每次运行我的程序时在我的内容解析器中创建一个新条目。如何检查内容解析器中是否已存在 Uri?我在文档中找不到任何内容。

最佳答案

内容解析器只是处理您的应用与内容提供者之间的交互的东西。

您应该关注内容提供者,尤其是 MediaStore 内容提供者。

打电话时你在做什么

Uri newUri = main.getContentResolver().insert(uri, values);

正在向 MediaStore 中插入一个新行。 newUri 指向这一行。你可以获得该行的_ID值通过调用

long newID=ContentUris.parseId(newUri);

但是,我认为您要问的是“如何判断我是否已将歌曲添加到 MediaStore?”我建议您在 MediaStore 上进行查询。请参见 ContentResolver.query()。

如果我这样做,我会查询 MediaColumns.DATA,看看您之前是否写入过该文件。除此之外,您还必须决定什么构成“已经存在”的铃声。

关于android - 检查 Content Resolver 是否有值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15933592/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com