Как найти отдельные папки, содержащие песни в Android Q, используя Mediastore, так как MediaStore.Audio.Media.DATA устарела - PullRequest
0 голосов
/ 10 февраля 2020

Как найти отдельные папки, содержащие песни в Android Q, используя Mediastore, так как MediaStore.Audio.Media.DATA устарела

старый использованный код был

    public ArrayList<Song> FolderFilesList(Context context, String FolderPath) {
          //folder-exclude-sub-folders

            ArrayList<Song> songs = new ArrayList<>();

String[] columns = {
                MediaStore.Audio.Media._ID,
                MediaStore.Audio.Media.TITLE,
                MediaStore.Audio.Media.ARTIST,
                MediaStore.Audio.Media.DURATION,
                MediaStore.Audio.Media.DATA,
                MediaStore.Audio.Media.ALBUM,
                MediaStore.Audio.Media.ALBUM_ID,
                MediaStore.Audio.Media.TRACK,
                MediaStore.Audio.Media.ARTIST_ID,
                MediaStore.Audio.Media.DISPLAY_NAME,

        };


            String selection = MediaStore.Audio.Media.DATA + " LIKE ? AND " + MediaStore.Audio.Media.DATA + " NOT LIKE ? ";
            String[] selectionArgs = new String[]{
                    "%" + FolderPath + "%",
                    "%" + FolderPath + "/%/%"
            };

            Cursor cursor = context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
                    columns(), selection, selectionArgs, null);
            if (cursor.moveToFirst()) {
                do {
                    Song song = new Song(
                            cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media._ID)),
                            cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE)),
                            cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM)),
                            cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID)),
                            cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST)),
                            cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST_ID)),
                            cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA)),
                            cursor.getInt(cursor.getColumnIndex(MediaStore.Audio.Media.TRACK)),
                            cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION))
                    );

                    //File f = new File(cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA)));
                    // if (f.isFile() && f.exists()) {
                    songs.add(song);
                    //}
                } while (cursor.moveToNext());
            }
            if (cursor != null) {
                cursor.close();
            }
            return songs;
        }

поскольку MediaStore.Audio.Media.DATA устарела в Android Q, как мы можем найти отдельную папку, используя Mediastore

Можем ли мы использовать URI для поиска различных папок файлов c файлов

...