[英]Direct file access (SQlite database) with Android 10+
我有 2 个应用程序 A 和 B。A 可以将数据下载到 B 拥有的 sqlite 数据库。直到现在我问用户 WRITE_EXTERNAL_STORAGE 权限,A 可以直接写入 B 的数据库,因此使用事务以避免更改数据库,如果用户取消该过程。
使用 Android 10 直接文件访问似乎不再可能,因为我们被迫使用 ****** SAF ...
为了仍然可以正常工作,我更新了我的应用程序以使用 ContentProvider。 但是,我不再能够使用事务来提供取消功能:数据太重而无法放入内存中,我无法使用 ContentProvider 的批量插入方法(如果我没记错的话?)。
我被卡住了吗? 或者是否有解决方案可以在我拥有的两个应用程序之间授予直接文件访问权限? 理想情况下,他的流程是这样的:
那可能吗?
编辑:我需要访问 File 对象,以便使用 SqliteDatabaseOpenHelper 类,因此 grantUriPermission 不会帮助我。
有没有一种解决方案可以在我拥有的两个应用程序之间授予直接文件访问权限?
不。
我被卡住了吗?
你可以这样做:
“通过某种方式”可能是:
insert()
或update()
与您的ContentProvider
startService()
传递的命令bindService()
和对 B 的服务公开的 AIDL 定义的 API 的调用Intent
有明确的Intent
A 有一个“用户交易”,可以根据用户交互停止下载。 下载完成后,B 可以执行数据库事务以使用下载内容的详细信息更新自己的数据库。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.