Android MediaStore sqlite 数据库位置

问题描述 投票:0回答:4

我正在尝试查找 MediaStore 使用的 sqlite 数据库。据我了解,MediaStore 包含默认音乐应用程序中定义的播放列表等。我实际上想复制播放列表,但应用程序不允许这样做。不知何故,我想如果我能找到实际的数据库文件,我就可以解决这个问题。但我现在完全偏离了方向,因为我找不到数据库。顺便说一句,我正在运行 FroYo。

android mediastore
4个回答
14
投票

查看 Android 源代码,我们感兴趣的类似乎是

android.provider.MediaStore
,其中
getDatabaseForUri()
方法似乎为每个外部存储卡生成一个不同的数据库,其中一个名为
internal.db

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

/data/data/com.android.providers.media/databases/internal.db

但是,我的该数据库副本没有 Java 源代码中使用的

audio_playlists
表,所以我不确定这是正确的。


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);

3
投票

地点是:

/data/data/com.android.providers.media/databases/internal.db

audio_playlists 不在 Tables 中,您可以在 Views 中看到它。 sql工具是:sqliteman,ubuntu13.10


0
投票

适用于android 11(Rootstock版本)

我在这个位置找到了数据库

/data/data/com.android.providers.media.module/databases/internal.db(用于系统相关文件)

/data/data/com.android.providers.media.module/databases/external.db(用于用户相关文件)。

** 请注意将世界“模块”添加到 com.android.providers.media

© www.soinside.com 2019 - 2024. All rights reserved.