Где (и как) поддерживает Android музыкальные плейлисты?

Я заметил, что Android поддерживает одни и те же музыкальные плейлисты в музыкальных приложениях. Где хранятся эти плейлисты? Как (в каком формате) они хранятся? Могу ли я получить к ним доступ удаленно через USB-хранилище, или вместо этого я могу использовать приложение для доступа к ним?

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

30 голосов | спросил Ilari Kajaste 27 +04002011-10-27T14:12:29+04:00312011bEurope/MoscowThu, 27 Oct 2011 14:12:29 +0400 2011, 14:12:29

2 ответа


23

Они хранятся в вашем файле music.db - my /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, и они отображаются во всех приложениях, которые берут данные из БД.

ответил eldarerathis 27 +04002011-10-27T17:24:30+04:00312011bEurope/MoscowThu, 27 Oct 2011 17:24:30 +0400 2011, 17:24:30
1

Я нашел сообщение от разработчиков XDA .

Если кто-либо читает это, он не найдет его в каталоге, указанном выше, попробуйте вместо этого:

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

Затем вы можете скопировать его на свой компьютер, использовать редактор SQLite на свой вкус и манипулировать данными по своему усмотрению.

ответил henry700 26 MonEurope/Moscow2016-12-26T16:58:03+03:00Europe/Moscow12bEurope/MoscowMon, 26 Dec 2016 16:58:03 +0300 2016, 16:58:03

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132