Wie kann ich auf Musikdateien im Gerät zugreifen und diese programmgesteuert in meiner Anwendung verwenden?
Antworten
Zu viele Anzeigen?Ein anderer Ansatz könnte sein, den MediaStore-Content-Provider zu verwenden, um Ihre Musik zu finden: http://developer.android.com/reference/android/provider/MediaStore.html.
Es gibt ein DATA-Feld in den MediaColumns, das den Datenstrom für die Mediendatei enthält.
Google hat ein Beispiel zum Lesen von Bildern aus dem MediaStore etwas mehr als auf halber Strecke dieser Seite: http://developer.android.com/guide/topics/providers/content-providers.html. Sie sollten in der Lage sein, den Code anzupassen, um Musik zu lesen, denke ich.
EDIT: Google hat die Dokumentation zu Content Providern neu geschrieben. Das oben genannte Beispiel scheint nicht mehr zu existieren. Aber sobald Sie eine URI für Ihre Medien haben, sollten Sie in der Lage sein, einen InputStream zu erhalten, indem Sie verwenden:
InputStream is = getContentResolver().openInputStream(uri);
Je nachdem, wo sich Ihre Dateien befinden, können Sie verwenden:
Environment.getExternalStorageDirectory();
oder:
Environment.getDataDirectory();
Beide geben Ihnen den Stammweg zu ihren jeweiligen Daten. z.B. getExternalStorageDirectory() gibt mir /mnt/sdcard/ auf meinem Evo 4G aus, da meine SD-Karte als externer Speicher für das Gerät registriert ist.
Danach müssen Sie wissen, wo sich Ihre Dateien befinden, und sich zu diesem Ordner durchkämpfen.