Android는 음악 재생 목록을 어디에 어떻게 저장합니까?


32

Android가 음악 앱간에 동일한 음악 재생 목록을 유지하는 것으로 나타났습니다. 이 재생 목록은 어디에 저장됩니까? 그것들은 어떻게 (어떤 형식으로) 저장됩니까? USB 저장소 링크를 통해 원격으로 액세스 할 수 있습니까, 또는 액세스하는 데 사용할 수있는 앱이 있습니까?

관련 질문 : 음악 전송 및 재생 목록


답변:


24

그것들은 당신의 music.db파일에 저장됩니다 /data/data/com.google.android.music/databases. 이것이 모든 장치에서 정확히 동일한 지 확실하지 않지만 아마도 같을 것입니다.

이들은 다음과 같이 정의 된 테이블 LISTSLISTITEMS테이블 의 조합으로 존재합니다 .

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 뮤직 베타를 사용하는 경우 생성 한 재생 목록은 다른 앱에는 나타나지 않지만 DB에는 항목이 있습니다. MusicSourceAccount필드가 Google 뮤직 계정 ID로 설정되어 있기 때문일 수 있습니다. 다른 앱은이를 0으로 설정하고 DB에서 데이터를 가져 오는 모든 앱에 나타납니다.


1

XDA Developers에서 게시물을 찾았 습니다 .

이것을 읽는 사람이 위에 나열된 디렉토리에서 찾지 못하면 대신 이것을 시도하십시오.

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

그런 다음 컴퓨터에 복사하고 취향에 맞는 SQLite 편집기를 사용하여 원하는대로 데이터를 조작 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.