【2022/01/27】MediaStore模糊查詢、分頁、排序

MediaStore模糊查詢、分頁、排序

image

安卓10以上就有了分區(qū)存儲的概念,相關的查詢就有了一些改變,下面我們介紹一下MediaStore經常使用的查詢。

常用的查詢項:

  1. QUERY_ARG_LIMIT:查詢條數(shù)
  2. QUERY_ARG_OFFSET:數(shù)據偏移量
  3. QUERY_ARG_SORT_DIRECTION:排序方向,也就是正序還是倒序
  4. QUERY_ARG_SORT_COLUMNS:排序字段
  5. QUERY_ARG_SQL_SELECTION:where語句

實際例子,page和limit需要全局定義

// 需要查詢的資源
Uri uri = MediaStore.Files.getContentUri("external");

// 需要查詢的字段,根據display_name模糊查詢,size大于0的,date_modified倒序
String[] columns = {
    MediaStore.Files.FileColumns.DISPLAY_NAME,
    MediaStore.Files.FileColumns.SIZE,
    MediaStore.Files.FileColumns.DATE_MODIFIED
};

// where條件
String where = "(_display_name like '%.png' or _display_name like '%.jpg') and _size > 0";

// 組裝查詢
Bundle select = new Bundle();
// 偏移量,也就是從第幾條開始查詢 page是頁碼,limit是每頁數(shù)量,根據邏輯自行修改
int start = (page - 1) * limit;
select.putInt(ContentResolver.QUERY_ARG_LIMIT, limit);
select.putInt(ContentResolver.QUERY_ARG_OFFSET, start);

// 排序方向,倒序
select.putInt(ContentResolver.QUERY_ARG_SORT_DIRECTION, ContentResolver.QUERY_SORT_DIRECTION_DESCENDING);
select.putStringArray(ContentResolver.QUERY_ARG_SORT_COLUMNS, new String[]{MediaStore.Files.FileColumns.DATE_MODIFIED});

// where條件
select.putString(ContentResolver.QUERY_ARG_SQL_SELECTION, where.toString());

// 這個query方法參數(shù)是4個
Cursor cursor = getActivity().getContentResolver().query(uri, columns, select, null);

// 查詢到此結束,然后就可以根據自己的邏輯進行操作了
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容