Android 托管查询的问题
我正在尝试编写一个应用程序,它列出了sd卡上的所有mp3文件Android 托管查询的问题,android,cursor,mediastore,Android,Cursor,Mediastore,我正在尝试编写一个应用程序,它列出了sd卡上的所有mp3文件 String[] columns = new String[] { MediaStore.Audio.Media._ID, MediaStore.Audio.Media.TITLE, MediaStore.Audio.Media.TITLE_KEY, MediaStore.Audio.Media.DATA, Medi
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卡路径是:
/external/audio/media
/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
,但managedQuery后musicCursor为空。也许uriStr的格式不正确,Uri初始化错误?
谢谢 您的代码是正确的。路径/external/audio/media是内容提供者路径,而不是实际文件系统中的路径。
你确定卡上有MP3文件吗?签入音乐应用程序可以查看文件。如果你不能在那里,我有时会发现(特别是在模拟器上)索引并不总是运行。通过卸载SD卡并重新安装(设置/SD卡和电话存储/卸载SD卡),强制SD重新索引所有媒体。谢谢,Nic!重新安装有帮助!现在一切正常。