Di mana (dan bagaimana) Android menyimpan daftar putar musik?

32

Saya perhatikan bahwa Android menyimpan daftar putar musik yang sama di seluruh aplikasi musik. Di mana daftar putar ini disimpan? Bagaimana (dalam format apa) mereka disimpan? Dapatkah saya mengaksesnya dari jarak jauh melalui tautan penyimpanan USB, atau apakah ada aplikasi yang dapat saya gunakan untuk mengaksesnya?

Pertanyaan terkait: Transfer musik dan daftar putar

Ilari Kajaste
sumber

Jawaban:

24

Mereka disimpan dalam music.dbfile Anda - milik saya adalah /data/data/com.google.android.music/databases; Saya tidak yakin apakah ini persis sama di semua perangkat tapi saya rasa itu mungkin.

Mereka hidup dalam kombinasi tabel LISTSdan LISTITEMS, yang didefinisikan sebagai:

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>

Menariknya, jika Anda menggunakan Google Music Beta baru, daftar putar yang Anda buat tampaknya tidak muncul di aplikasi lain tetapi mereka memiliki entri di DB. Sepertinya ini mungkin karena MusicSourceAccountbidangnya diatur ke id akun Google Music Anda; aplikasi lain mengaturnya ke 0, dan yang muncul di semua aplikasi yang mengambil data dari DB.

eldarerathis
sumber
1

Saya menemukan posting dari Pengembang XDA .

Jika ada orang yang membaca ini tidak menemukannya di direktori yang tercantum di atas, coba yang ini sebagai gantinya:

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

Anda kemudian dapat menyalinnya ke komputer Anda, gunakan editor SQLite sesuai selera Anda dan memanipulasi data sesuai keinginan Anda.

henry700
sumber