как поймать все песни в SDCard, а также папки SDCard, такие как музыка и т. д. - PullRequest
0 голосов
/ 25 апреля 2018

Я использую этот код для поиска файлов mp3:

`

   // String extStore = System.getenv("EXTERNAL_STORAGE");
   // File home = new File(extStore);


    //String extStore = "/storage/extSdCarcd";
    String extStore = "/storage/";
    File home = new File(extStore);

    if(home.listFiles(new FileExtensionFilter()).length>0){

        for(File file : home.listFiles(new FileExtensionFilter())){

            HashMap<String,String> song = new HashMap<String, String>();
            song.put("title",file.getName().substring(0,(file.getName().length()-4)));
            song.put("path",file.getPath());
            songsList.add(song);
        }
    }

    return songsList;
}`

, как вы видите, я пробовал много способов получить файлы .mp3, но если у меня есть файл mp3 вмоя папка bluetooth или папка музыки, они не помогут.они просто для музыки в sdcard

1 Ответ

0 голосов
/ 25 апреля 2018

для получения всех песен в формате mp3 вы должны использовать базу данных Media Store, в которой перечислены все песни устройства

private ArrayList<HashMap<String, String>> songsList = new ArrayList<HashMap<String, String>>();


public ArrayList<HashMap<String, String>> getPlayList(Context c) {

    final Cursor mCursor = c.getContentResolver().query(
        MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
        new String[] { MediaColumns.TITLE, MediaColumns.DATA, AudioColumns.ALBUM }, null, null,
        "LOWER(" + MediaColumns.TITLE + ") ASC");

    String songTitle = "";
    String songPath = "";

    /* run through all the columns we got back and save the data we need into the arraylist for our listview*/
    if (mCursor.moveToFirst()) {
        do {
            songTitle = mCursor.getString(mCursor.getColumnIndexOrThrow(MediaColumns.TITLE));
            songPath = mCursor.getString(mCursor.getColumnIndexOrThrow(MediaColumns.DATA));

            HashMap<String, String> song = new HashMap<String, String>();
            song.put("songTitle", songTitle);
            song.put("songPath", songPath);
            songsList.add(song);

        } while (mCursor.moveToNext());
    }   

    mCursor.close(); //cursor has been consumed so close it
    return songsList;
}
...