Вони зберігаються у вашому music.db
файлі - мій є /data/data/com.google.android.music/databases
; Я не впевнений, чи це однаково на всіх пристроях, але я б припустив, що це, мабуть, так.
Вони живуть у поєднанні таблиць LISTS
та LISTITEMS
таблиць, які визначені як такі:
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>
Цікаво, що якщо ви використовуєте нову бета-версію Google Music, списки відтворення, які ви створюєте, не відображаються в інших додатках, але вони мають записи в БД. Схоже, це можливо тому, що MusicSourceAccount
поле встановлено ідентифікатором вашого облікового запису Google Music; інші додатки встановлюють його на 0, і вони з’являються у всіх додатках, які беруть дані з БД.