我有两个应用程序A&B.A可以将数据下载到B所拥有的sqlite数据库中,直到现在我才向用户询问WRITE_EXTERNAL_STORAGE权限,而A可以直接写入B的数据库,从而使用事务来避免在用户取消该过程时更改数据库。
使用Android 10,直接文件访问似乎不再可能了,因为我们被迫使用这个*SAF.
为了实现这个目标,我更新了我的应用程序以使用ContentProvider。但是,我不再能够使用事务来提供cancel特性:数据太重,无法容纳内存,因此不能使用ContentProvider的批处理插入方法(如果我没有弄错的话)。
我被困住了吗?还是有一种解决方案可以在我拥有的两个应用程序之间授予直接文件访问权?理想的情况下,他的过程应该是这样的:
下载文件2
H 214H 115>A提交事务处理(或在用户要求取消时回滚)H 216A通知B下载已完成H 218H 119B撤销访问H 220F 221/code>这有可能吗?
编辑:为了使用SqliteDatabaseOpenHelper类,我需要对File对象进行访问,这样grantUriPermission就帮不了我了。
发布于 2020-01-12 22:27:27
是否有办法在我拥有的两个应用程序之间授予直接文件访问权?
不是的。
我被困住了吗?
你可以这样做:
2
F 217
“以某种方式”可以是:
insert()或update()使用startService()bindService()提供的ContentProviderIntentIntent (如果这是合适的话)(可能不是,只是提到completeness)A有一个“用户事务”,可以根据用户交互停止下载。下载完成后,B可以执行数据库事务,用下载内容的详细信息更新自己的数据库。
https://stackoverflow.com/questions/59708378
复制相似问题