2012-07-29 8 views
5

Ich kenne die URI eines einzelnen Songs. Wie bekomme ich die Informationen zum Song, den Titeltrack usw.?Android Wie man die ID-Informationen eines einzelnen Songs von einem bekannten URI erhält

Sorry alle Beiträge, die ich finden kann, bieten eine Methode zum Indexieren der gesamten Bibliothek, nicht, wie man eine einzige wissen URI-Song-Infos bekommen. Dies ist, was ich verwende, um den URI zu erhalten. audioID wird in SharedPrefs gespeichert. Danke

int REQUEST_MEDIA = 0; 
String audioID; 

Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Audio.Media.EXTERNAL_CONTENT_URI); 
     startActivityForResult(i, REQUEST_MEDIA);//REQUEST_MEDIA is some const int to operate with in onActivityResult 
if (requestCode == REQUEST_MEDIA && resultCode == RESULT_OK) { 
     audioID = data.getDataString(); 

Antwort

5

Ich beantwortete meine eigene Frage, hoffentlich hilft das jemand anderen in der Zukunft.

+0

Es tat! Danke für das Follow-up - – kittka

+0

Danke, froh, dass ich helfen konnte. – user1234051

0

Die obige Antwort konnte den Ball leider nicht für mich gewinnen, aber ich entdeckte dies für jeden, der noch auf der Suche ist.

//Some audio may be explicitly marked as not being music 
String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0"; 

String[] projection = { 
    MediaStore.Audio.Media._ID, 
    MediaStore.Audio.Media.ARTIST, 
    MediaStore.Audio.Media.TITLE, 
    MediaStore.Audio.Media.DATA, 
    MediaStore.Audio.Media.DISPLAY_NAME, 
    MediaStore.Audio.Media.DURATION 
}; 

Cursor cursor = this.managedQuery(
    MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, 
    projection, 
    selection, 
    null, 
    null); 

private List<String> songs = new ArrayList<String>(); 
while(cursor.moveToNext()) { 
    songs.add(cursor.getString(0) + "||" 
       + cursor.getString(1) + "||" 
       + cursor.getString(2) + "||" 
       + cursor.getString(3) + "||" 
       + cursor.getString(4) + "||" 
       + cursor.getString(5)); 

    //TO DISPLAY IN LISTVIEW 
    ListView lv = (ListView) findViewById(R.id.song_list); 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, songs); 
    lv.setAdapter(adapter); 

    cursor.close(); 

Dieser Code ist mit freundlicher Genehmigung von diesem Posten right here :-)

+0

Dieser Code scheint die gesamte Musik abzufragen. Die Frage fragt explizit nach einem bestimmten URI. Wenn Sie denken, dass dieser Code geeignet ist, erklären Sie es bitte, fügen Sie nicht einfach zufälligen Code ein. – Vince

+0

@Vince Sie sind richtig, es gibt alle Ergebnisse zurück, und war keineswegs zufällig. Ich werde mich heute besser auf die Frage einstellen. –

Verwandte Themen