0

我試圖從特定文件夾上的外部內容URI查詢音頻文件列表。但是子文件夾中的所有音頻也都包含在內。Android - 查詢特定文件夾中的音頻文件(不包括子文件夾)

如何僅在特定文件夾上獲取音頻並排除子文件夾。

這就是我想要做的。

Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; 

    Cursor cursor = contentResolver.query(
      uri, projection,MediaStore.Audio.Media.DATA + " LIKE ? " , new String[]{"%/storage/emulated/0/Music/Tamil/%"} , null); 

請讓我知道,如果查詢是錯誤的

我試圖在計算器上多個答案,但沒有奏效。

回答

0

嘗試這種方式

// The folder needs to end with the % wildcard or stuff doesn't work properly. 
String folder = "/mnt/sdcard/Music/Some Folder/"; 
folder = folder + "%"; 
String where = Artists._ID + " IN (SELECT " + Media.ARTIST_ID + " FROM audio WHERE " + 
    Media.DATA + " LIKE ?)"; 
String[] whereArgs = new String[]{folder}; 
audioCursor = getContentResolver().query(MediaStore.Audio.Artist.EXTERNAL_CONTENT_URI, 
    cols, where, whereArgs, AudioColumns.ARTIST + " COLLATE LOCALIZED ASC"); 
+1

我試圖從另一個問題這個答案,但它不工作。我挑選包括子文件夾在內的所有音頻 – Libin

0

你應該能夠做到這一點是這樣的:

Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; 
String folder = "/storage/emulated/0/Music/Tamil"; 
String selection = MediaStore.Audio.Media.DATA + " LIKE ? AND " + MediaStore.Audio.Media.DATA + " NOT LIKE ? "; 
String[] selectionArgs = new String[]{ 
     "%" + folder + "%", 
     "%" + folder + "/%/%" 
}; 
Cursor cursor = contentResolver.query(uri, projection, selection, selectionArgs, null); 
相關問題