Android Studio Music Player kann nicht von der SD-Karte gelesen werden, nur interner Speicher

Ich entschuldige mich, wenn sich herausstellt, dass dies eine dumme Frage ist, es könnte sich als schnelle Lösung herausstellen, aber ich kann es einfach nicht herausfinden. Ich baue einen Musik-Player in Android Studio und keiner der Songs auf der SD-Karte wird in der Listenansicht angezeigt, nur die im internen Speicher, obwohl ich getExternalStorageDirectory () implementiert und die Berechtigung in die Manifest-Datei eingefügt habe. Jede Eingabe zu diesem Thema oder konstruktive Kritik wird sehr geschätzt. Hier ist die Java-Hauptklasse.

public class MainActivity extends AppCompatActivity {

    ListView lv;
    String[] items;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lv = (ListView) findViewById(R.id.lvPlayList);

        //---------------------------------------------> V HERE V <-------------------------

        final ArrayList<File> mySongs = findSongs(Environment.getExternalStorageDirectory());
        //----------------------------------------------------------------------------------
        items = new String[ mySongs.size() ];

        for(int i = 0; i<mySongs.size(); i++) {
            toast(mySongs.get(i).getName().toString());
            items[i] = mySongs.get(i).getName().toString().replace(".mp3", "").replace(".wav", "");
        }

        ArrayAdapter<String> adp = new ArrayAdapter<>(getApplicationContext(), R.layout.song_layout, R.id.textView, items);
        lv.setAdapter(adp);
        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                startActivity(new Intent(getApplicationContext(), Player.class).putExtra("pos",position).putExtra("songlist",mySongs));
            }
        });
    }

    public ArrayList<File> findSongs(File root) {
        ArrayList<File> al = new ArrayList<>();
        File[] files = root.listFiles();
        for(File singleFile : files) {
            if(singleFile.isDirectory() && !singleFile.isHidden()) {
                al.addAll(findSongs(singleFile));
            } else {
                if(singleFile.getName().endsWith(".mp3") || singleFile.getName().endsWith(".wav")) {
                    al.add(singleFile);
                }
            }
        }
        return al;
    }

    public void toast(String text) {
        Toast.makeText(getApplicationContext(), text, Toast.LENGTH_SHORT).show();
    }
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage