Де (і як) Android зберігає списки відтворення музики?


32

Я помітив, що Android зберігає однакові списки відтворення музики в музичних додатках. Де зберігаються ці списки відтворення? Як (у якому форматі) вони зберігаються? Чи можу я отримати доступ до них віддалено через посилання на накопичувач USB, чи є натомість додаток, який я можу використовувати для доступу до них?

Супутнє запитання: Передача музики та списки відтворення


Відповіді:


24

Вони зберігаються у вашому 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, і вони з’являються у всіх додатках, які беруть дані з БД.


1

Я знайшов повідомлення від розробників XDA .

Якщо хтось, хто читає це, не знайде його у вказаному вище каталозі, спробуйте скористатися цим:

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

Потім ви можете скопіювати його на свій комп’ютер, використовувати редактор SQLite на свій смак та маніпулювати даними за власним бажанням.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.