Dove (e come) Android archivia le playlist musicali?


32

Ho notato che Android mantiene le stesse playlist musicali in tutte le app musicali. Dove sono archiviate queste playlist? Come (in quale formato) sono memorizzati? Posso accedervi da remoto tramite il collegamento di archiviazione USB o esiste invece un'app che posso usare per accedervi?

Domanda correlata: trasferimento di musica e playlist


Risposte:


24

Sono memorizzati nel tuo music.dbfile - il mio è /data/data/com.google.android.music/databases; Non sono sicuro che sia esattamente lo stesso su tutti i dispositivi, ma immagino che probabilmente lo sia.

Vivono in una combinazione delle tabelle LISTSe LISTITEMS, che sono definite come tali:

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>

È interessante notare che, se stai utilizzando la nuova Google Music Beta, le playlist che crei non sembrano apparire in altre app ma hanno voci nel DB. Sembra che ciò sia dovuto al fatto che il MusicSourceAccountcampo è impostato sull'ID del tuo account Google Music; altre app lo impostano su 0 e quelle vengono visualizzate su tutte le app che accettano dati dal DB.


1

Ho trovato un post dagli sviluppatori XDA .

Se qualcuno che legge questo non lo trova nella directory sopra elencata, prova invece questo:

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

Puoi quindi copiarlo sul tuo computer, utilizzare l'editor SQLite di tuo gusto e manipolare i dati a tuo piacimento.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.