Android MediaStore sqlite db位置

Har*_*rdy 7 android mediastore

我试图找到MediaStore使用的sqlite数据库.据我所知,MediaStore包含默认音乐应用程序中定义的播放列表.我实际上想要复制一个播放列表,但应用程序不允许这样做.不知何故,如果我能找到实际的db文件,我想我可以解决这个问题.但是我现在完全陷入了困境,因为我找不到数据库.顺便说一下,我正在运行FroYo.

Dav*_*ebb 13

看看Android源我们感兴趣的类似乎就android.provider.MediaStore在那里,该getDatabaseForUri()方法似乎为每个外部存储卡生成一个不同的数据库,并调用一个internal.db.

所以我认为你感兴趣的文件是:

/data/data/com.android.providers.media/databases/internal.db
Run Code Online (Sandbox Code Playgroud)

但是,我的数据库副本没有audio_playlistsJava源代码中使用的表,所以我不确定这是对的.


smi*_*324 4

执行此操作的正确方法是使用内容提供程序来查询媒体存储并从那里对表进行任何类型的修改。

如何查询 MediaStore 中所有艺术家的快速示例。

String[] proj = { MediaStore.Audio.Media._ID,
                        MediaStore.Audio.Media.DATA,
                        MediaStore.Audio.Media.DISPLAY_NAME,
                        MediaStore.Audio.Artists.ARTIST };
            //managed query doesn't need startManagingCursor called on the cursor
            Cursor c = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
                        proj, null, null, null);
Run Code Online (Sandbox Code Playgroud)