2016-05-02 10 views
0

Ich schreibe einen Musik-Player und ich verwende ContentResolver, um alle Musikdateien in den Speicher des Geräts zu bekommen. Die Abfrage ruft eine ID, einen Titel, ein Album und einen Künstler ab und speichert diese anschließend in meiner lokalen Datenbank.Wie verwaltet Android Musikdateien URI?

Ist es sicher, die ID zu verwenden, die ich von ContentResolver als Primärschlüssel für die Spuren bekomme? Ändert Android die ID des Tracks unter allen Umständen? Was passiert, wenn der Benutzer manuell Musikdateien von seiner SD-Karte löscht? Wie kann ich überprüfen, ob die ID, die ich in meiner Datenbank habe, immer noch auf eine vorhandene Datei verweist?

+0

Müssen Sie das Abfrageergebnis wirklich in Ihrer lokalen DB speichern? Die Duplizierung von Daten führt fast immer zu Konsistenzproblemen. – Henry

Antwort

0

Sie bereits in ID, Titel, Album und Künstler in der lokalen Datenbank gespeichert.

eine weitere Sache, werden Sie den Pfad der Dateien speichern .so

, wenn aus der Datenbank überprüfen Sie die Datei in in dort Lage oder nicht abrufen? falls nicht, Anzeige des Alarms für den Benutzer

File file = new File(filePath); 
if(file.exists())  
{ 
//Do something to play or view details 
} 
else 
{ 
// file may be deleted or moved by user alert message here 
}