Wo (und wie) speichert Android Musikwiedergabelisten?

32

Ich habe festgestellt, dass Android in allen Musik-Apps dieselben Musik-Wiedergabelisten verwendet. Wo werden diese Wiedergabelisten gespeichert? Wie (in welchem ​​Format) werden sie gespeichert? Kann ich über die USB-Speicherverbindung remote auf sie zugreifen, oder gibt es stattdessen eine App, mit der ich auf sie zugreifen kann?

Verwandte Frage: Musikübertragung und Wiedergabelisten

Ilari Kajaste
quelle

Antworten:

24

Sie sind in Ihrer music.dbDatei gespeichert - meine ist /data/data/com.google.android.music/databases; Ich bin mir nicht sicher, ob dies für alle Geräte genau gleich ist, aber ich denke, dass dies wahrscheinlich der Fall ist.

Sie leben in einer Kombination aus LISTSund LISTITEMSTabellen, die als solche definiert sind:

sqlite> .schema lists
.schema lists
CREATE TABLE LISTS(Id INTEGER PRIMARY KEY AUTOINCREMENT, Name TEXT NOT NULL, 
    SourceAccount INTEGER, SourceId TEXT, _sync_version TEXT, 
    _sync_dirty INTEGER NOT NULL DEFAULT 0, MediaStoreId INTEGER, 
    ListType INTEGER NOT NULL DEFAULT 0, ListArtworkLocation TEXT);
CREATE INDEX LIST_SYNC_INDEX on LISTS(SourceAccount,SourceId);
sqlite>

sqlite> .schema listitems
.schema listitems
CREATE TABLE LISTITEMS(Id INTEGER PRIMARY KEY AUTOINCREMENT, 
    ListId INTEGER NOT NULL REFERENCES LISTS, MusicSourceAccount INTEGER NOT NULL,  
    MusicSourceId TEXT NOT NULL, ClientPosition INTEGER NOT NULL, 
    ServerPosition INTEGER NOT NULL DEFAULT 0, SourceAccount INTEGER, SourceId TEXT,
    _sync_version TEXT, _sync_dirty INTEGER NOT NULL DEFAULT 0, 
    ServerOrder TEXT DEFAULT '', ClientId TEXT);
CREATE INDEX LISTITEMS_ORDER_INDEX ON LISTITEMS (ListId, ServerOrder, ClientPosition);
CREATE INDEX LISTITEMS_SYNC_INDEX on LISTITEMS(SourceAccount,SourceId);
sqlite>

Interessanterweise werden die von Ihnen erstellten Wiedergabelisten bei Verwendung der neuen Google Music Beta nicht in anderen Apps angezeigt, sie enthalten jedoch Einträge in der Datenbank. Möglicherweise liegt dies daran, dass das MusicSourceAccountFeld auf Ihre Google Music-Konto-ID eingestellt ist. Andere Apps setzen es auf 0, und diese werden in allen Apps angezeigt, die Daten aus der Datenbank beziehen.

eldarerathis
quelle
1

Ich habe einen Beitrag von XDA Developers gefunden .

Wenn jemand, der dies liest, es nicht in dem oben aufgelisteten Verzeichnis findet, probieren Sie stattdessen dieses aus:

/data/data/com.android.providers.media/databases/external-{{some hex here}}.db

Sie können es dann auf Ihren Computer kopieren, den SQLite-Editor nach Ihrem Geschmack verwenden und die Daten nach eigenem Ermessen bearbeiten.

henry700
quelle