Android lưu trữ danh sách nhạc ở đâu (và làm thế nào)?


32

Tôi đã nhận thấy rằng Android giữ các danh sách phát nhạc giống nhau trên các ứng dụng âm nhạc. Những danh sách phát này được lưu trữ ở đâu? Làm thế nào (ở định dạng) chúng được lưu trữ? Tôi có thể truy cập chúng từ xa thông qua liên kết lưu trữ USB hoặc thay vào đó là một ứng dụng tôi có thể sử dụng để truy cập chúng?

Câu hỏi liên quan: Chuyển nhạc và danh sách nhạc


Câu trả lời:


24

Chúng được lưu trữ trong music.dbtệp của bạn - của tôi là /data/data/com.google.android.music/databases; Tôi không chắc liệu điều này có giống hệt nhau trên tất cả các thiết bị hay không nhưng tôi đoán có lẽ là như vậy.

Họ sống trong một sự kết hợp của LISTSLISTITEMSbảng biểu, được định nghĩa như vậy:

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>

Thật thú vị, nếu bạn đang sử dụng Google Music Beta mới, danh sách phát mà bạn tạo dường như không xuất hiện trong các ứng dụng khác nhưng chúng có các mục trong DB. Có vẻ như điều này có thể là do MusicSourceAccounttrường được đặt thành id tài khoản Google Music của bạn; các ứng dụng khác đặt thành 0 và những ứng dụng này xuất hiện trên tất cả các ứng dụng lấy dữ liệu từ DB.


1

Tôi tìm thấy một bài đăng từ XDA Developers .

Nếu bất cứ ai đọc cái này không tìm thấy nó trong thư mục được liệt kê ở trên, hãy thử cái này thay thế:

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

Sau đó, bạn có thể sao chép nó vào máy tính của mình, sử dụng trình soạn thảo SQLite theo sở thích của bạn và thao tác dữ liệu theo ý của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.