MediaProvider中存在两个数据库一个是external对应文件系统为SD Card, 一个是内部数据库internal用于手机flash上的文件系统。遗憾的是虽然MediaProvider提供了操作内外两个数据库的功能,但在发布的应用中并没有使用这个内部文件系统。Android 默认状态下Image,audio等文件是保存在SD card上。External, internal 数据库都保存在手机文件系统上。
如果要使用内部文件系统需要修改以下几个地方 1:MediaProvider generateFileName函数 java代码: private String generateFileName(boolean internal, String preferredExtension, String directoryName) 恢复红色部分代码,将路径设置为手机内部文件系统文件夹。 部文件系统数据库 java代码: static void delete_file(sqlite3_context * context, int argc, sqlite3_value ** argv){ sqlite3_result_null(context); return; 添加红色部分,文件位于手机上/data/media路径时也进行删除。这样当我们从数据库里删除一条记录时,_data数据区存取的文件路径中的文件也将自动删除。 (责任编辑:捉蛋网-刷机) |