Android URI到游标
如果我已经将sdcard中文件路径的URI转换为android中的游标Android URI到游标,android,Android,如果我已经将sdcard中文件路径的URI转换为android中的游标 Cursor cursor = getContentResolver().query(XXX, null, null, null, null); if(null != cursor) { cursor.moveToFirst(); mediaAdapter = new MediaCursorAdapter(this, R.layout.listitem, cursor); setListAdapter
Cursor cursor = getContentResolver().query(XXX, null, null, null, null);
if(null != cursor)
{
cursor.moveToFirst();
mediaAdapter = new MediaCursorAdapter(this, R.layout.listitem, cursor);
setListAdapter(mediaAdapter);
}
我可以用什么来代替XXX
private class MediaCursorAdapter extends SimpleCursorAdapter{
@SuppressWarnings("deprecation")
public MediaCursorAdapter(Context context, int layout, Cursor c) {
super(context, layout, c, new String[] { MediaStore.MediaColumns.DISPLAY_NAME, MediaStore.MediaColumns.TITLE, MediaStore.Audio.AudioColumns.DURATION},
new int[] { R.id.displayname, R.id.title, R.id.duration });
}
}
有人能帮我吗
提前感谢您应该为XXX使用
MediaStore.Images.Media.EXTERNAL\u CONTENT\u URI
String[] projection = {
MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.DISPLAY_NAME,
MediaStore.Audio.Media.DURATION
};
Cursor cursor = getActivity().getContentResolver().query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
projection, // Which columns to return
MediaStore.Audio.Media.DATA + " like ? ", // Return all rows
new String[] {"%/path/to/my/files/%"},
// or:
// MediaStore.Images.Media.DATA + "=? ",
// new String[] { filePath },
null);
使用此选项时出现异常:java.lang.IllegalArgumentExeption:列“duration”不存在如果该列用于音频,请使用:MediaStore.audio.Media.EXTERNAL\u CONTENT\u URI。将所有
MediaStore.Images
替换为MediaStore.Audio
。如果是Vide,那么您有MediaStore.Video…
I使用这个:Cursor Cursor=this.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL\u CONTENT\u URI,projection,MediaStore.Audio.Media.DATA+“=?”,//返回所有行新字符串[]{/mnt/sdcard/sound/”,null);但它返回空为什么???!!!!不知道,我在我的2.3.3索尼XPeria上测试了这段代码(音频的更新答案),它可以工作。添加任何权限??!!