Frage

Ich arbeite auf einer MP3-Anwendung, in der ich die Dateien auf meiner SD-Karte zu indizieren möchte. Was ist der beste Weg, es zu tun?

Meine Idee . Suchen Sie nach Dateien, wenn die Anwendung zum ersten Mal gestartet wird, und registrieren Sie einen Rundfunkempfänger für die SD-Karte Zustandsänderung Absichten und die Suche nach den Dateien, wann immer die Absicht gesendet wird.

Aber in diesem Fall ist die ANR auftauchen würde, wenn meine Rundfunkempfänger kehren nicht innerhalb von 10 Sekunden.

Suche nach besseren und Failsafe-Ideen. Danke.

War es hilfreich?

Lösung

Vereinbaren Sie mit Chris, findet MediaScanner Musik für Sie, die Mediastore Datenbank bevölkern. Hier ist ein Code, einen Musik Eintrag zu sehen:

        final Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
        final String[] cursor_cols = {
                MediaStore.Audio.Media._ID,
                MediaStore.Audio.Media.ARTIST,
                MediaStore.Audio.Media.ALBUM,
                MediaStore.Audio.Media.TITLE,
        };
        final String where = MediaStore.Audio.Media.IS_MUSIC + "=1";
        final Cursor cursor = getContentResolver().query(uri, cursor_cols, where, null, null);
        cursor.moveToNext();
        final String artist = cursor.getString(_cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST));
        final String album = cursor.getString(_cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM));
        final String track = cursor.getString(_cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));
        doSomethingInteresting(artist, album, track);

Die „Daten“ -Feld enthält einen Griff Sie mit Mediaplayer verwenden können.

Andere Tipps

die ANR Sie die Suche außerhalb des UI-Thread tun müssen, zu vermeiden. Als SD-Karten groß sein können, mögen Sie wahrscheinlich es in einem Dienst tun, anstatt in Ihrem Vordergrund Aktivität, so dass die Benutzer ihr Gerät für andere Dinge verwenden können, während die Suche ist noch nicht abgeschlossen.

Aber android bereits Funde und Indizes unterstützten Mediendateien, so dass Sie sehen sollten, wenn Sie die eingebaute in MediaScanner Sachen nutzen können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top