用MediaStore获取内部视频存储,为什么获取数据显示为条0(手机里有视频)?

新手上路,请多包涵

我查询手机内的视频在后台显示为0条数据
@Override

public void initData() {
  


    AsyncQueryHandler asyncQueryHandler=new AsyncQueryHandler(getActivity().getContentResolver()) {
       
        @Override
        protected void onQueryComplete(int token, Object cookie, Cursor cursor) {
           Utils.printCursor(cursor);
           
        }
    };

   int token = 0;            // 相当于Message.what
   Object cookie = null;    // 相当于Message.obj
   Uri uri = MediaStore.Video.Media.INTERNAL_CONTENT_URI;
   String[] projection = {    // 指定要查询哪些列
           MediaStore.Video.Media._ID, MediaStore.Video.Media.TITLE,
           MediaStore.Video.Media.DURATION, MediaStore.Video.Media.SIZE, MediaStore.Video.Media.DATA,
   };
   String selection = null;                // 指定查询条件
   String[] selectionArgs = null;            // 指定查询条件中的参数
   String orderBy = MediaStore.Video.Media.TITLE + " ASC";    //  指定为升序
 
   asyncQueryHandler.startQuery(token, cookie, uri, projection, selection, selectionArgs, orderBy);
   }
   下面是Utils里面的方法
       /**![图片描述][1]
 * 遍历Cursor中所有的记录
 * @param cursor
 */
public static void printCursor(Cursor cursor) {
    if (cursor == null) {
        return ;
    }

    Logger.i(Utils.class, "共有" + cursor.getCount() + "条数据");
    // 遍历所有的行
    while (cursor.moveToNext()) {

        // 遍历所有的列
        Logger.i(Utils.class, "---------------------");
        for (int i = 0; i < cursor.getColumnCount(); i++) {
            String columnName = cursor.getColumnName(i);
            String value = cursor.getString(i);
            Logger.i(Utils.class, columnName + "=" + value);
        }
    }
}

阅读 2.9k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题