android 11 中 sqlite 数据库备份的 mime 类型是什么?
What is the mime type for sqlite db backup in android 11?
我的应用程序具有导入和导出数据库文件的功能。我使用了 mime-type application/x-sqlite3
,它在早期版本中运行良好。 However, in Android 11 export is working as expected but when opt for import, DB file that was copied is grayed out.因此,我无法对 select 文件进行进一步处理。如果我使用 intent.setType("*/*");
,我可以访问该文件,但我不想让每个文件都 select 可用。我只想过滤掉 sqlite 数据库文件。
我也尝试过 "application/vnd.sqlite3", "application/octet-stream"
,但情况仍然存在。
这是代码片段:
private void handleImportView() {
Intent intent = new Intent();
String[] mimetypes = {"application/x-sqlite3","application/vnd.sqlite3", "application/octet-stream"};
intent.putExtra(Intent.EXTRA_MIME_TYPES, mimetypes);
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select file to import"), REQUEST_CODE_RESTORE);
}
现在已经解决了。
我正在使用以下代码创建要导出的文件:
Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("application/x-sqlite3");
intent.putExtra(Intent.EXTRA_TITLE, filename);
startActivityForResult(intent, REQUEST_CODE_FILE_CREATED);
虽然它被指定为 "application/x-sqlite3"
作为 mime 类型,但它实际上使用 mime application/x-trash
.
创建了文件
我在 onActivityResult 中使用了 intent.setType("*/*");
和 getContentResolver().getType(uri);
来识别 mime 类型。
现在我添加了这个 mime 类型并且它按预期工作。
private void handleImportView() {
Intent intent = new Intent();
String[] mimetypes = {"application/x-sqlite3","application/vnd.sqlite3", "application/octet-stream", "application/x-trash"};
intent.putExtra(Intent.EXTRA_MIME_TYPES, mimetypes);
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select file to import"), REQUEST_CODE_RESTORE);
}
我的应用程序具有导入和导出数据库文件的功能。我使用了 mime-type application/x-sqlite3
,它在早期版本中运行良好。 However, in Android 11 export is working as expected but when opt for import, DB file that was copied is grayed out.因此,我无法对 select 文件进行进一步处理。如果我使用 intent.setType("*/*");
,我可以访问该文件,但我不想让每个文件都 select 可用。我只想过滤掉 sqlite 数据库文件。
我也尝试过 "application/vnd.sqlite3", "application/octet-stream"
,但情况仍然存在。
这是代码片段:
private void handleImportView() {
Intent intent = new Intent();
String[] mimetypes = {"application/x-sqlite3","application/vnd.sqlite3", "application/octet-stream"};
intent.putExtra(Intent.EXTRA_MIME_TYPES, mimetypes);
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select file to import"), REQUEST_CODE_RESTORE);
}
现在已经解决了。
我正在使用以下代码创建要导出的文件:
Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("application/x-sqlite3");
intent.putExtra(Intent.EXTRA_TITLE, filename);
startActivityForResult(intent, REQUEST_CODE_FILE_CREATED);
虽然它被指定为 "application/x-sqlite3"
作为 mime 类型,但它实际上使用 mime application/x-trash
.
我在 onActivityResult 中使用了 intent.setType("*/*");
和 getContentResolver().getType(uri);
来识别 mime 类型。
现在我添加了这个 mime 类型并且它按预期工作。
private void handleImportView() {
Intent intent = new Intent();
String[] mimetypes = {"application/x-sqlite3","application/vnd.sqlite3", "application/octet-stream", "application/x-trash"};
intent.putExtra(Intent.EXTRA_MIME_TYPES, mimetypes);
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select file to import"), REQUEST_CODE_RESTORE);
}