gpt4 book ai didi

android - 托管查询的问题

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

我正在尝试编写应用程序,它列出了 SD 卡中的所有 mp3 文件。

String[] columns = new String[] {
MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media.TITLE_KEY,
MediaStore.Audio.Media.DATA,
MediaStore.Audio.Media.ALBUM,
MediaStore.Audio.Media.ARTIST,
MediaStore.Audio.Media.ARTIST_ID,
MediaStore.Audio.Media.DURATION,
MediaStore.Audio.Media.TRACK
};

String uristr_t = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI.getPath();
Cursor musicCursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
columns, null, null, null);

if(musicCursor != null){
mSongs = new ArrayList<SongInfo>( musicCursor.getCount());
boolean isMediaFilesExist = musicCursor.moveToFirst();
...

SD 卡上有一些 mp3 文件,但 musicCursor.GetCount() 返回 0。我想路径不正确。 EXTERNAL_CONTENT_URI 是 content://media/external/audio/media,它的路径是:

/external/audio/media

但是我的sd卡的路径是:

 /mnt/sdcard

而且我尝试手动设置 Uri:

String uriStr = "content://" + Environment.getExternalStorageDirectory().getPath();
Uri sdCardUri = Uri.parse(uriStr);
Cursor musicCursor = managedQuery(sdCardUri, columns, null, null, null);

在这种情况下,Uri 是 content:///mnt/sdcard,但 musicCursor 在 managedQuery 之后为 null。可能是 uriStr 格式不对,Uri 初始化错误?谢谢!

最佳答案

您的代码是正确的。路径/external/audio/media 是内容提供者路径而不是实际文件系统的路径。您确定卡上有 MP3 文件吗? checkin 您可以看到文件的音乐应用程序。如果你不能在那里,我有时会发现(尤其是在模拟器上)索引并不总是运行。通过卸载 SD 卡并重新安装(设置/SD 卡和手机存储/卸载 SD 卡)强制 SD 重新索引所有媒体。

关于android - 托管查询的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5632508/

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