【发布时间】:2022-01-05 09:35:48
【问题描述】:
我的应用正在创建一些用户可以使用网络浏览器打开的 html 文件(报告)。
但从 Android 11 数据存储隐私来看,浏览器无法从应用私有存储中读取 html 文件。
存储访问框架需要人工干预。
是否有任何解决方法,以便网络浏览器可以访问我的应用特定存储中生成的 html 文件?
【问题讨论】:
-
使用 FileProvider 提供文件的 ACTION_VIEW 就可以了。
-
试过了,但它仅适用于公共目录,不适用于特定于应用程序的私有目录(适用于 Android 11)。虽然 html 报告仅在应用程序包内生成。
-
下面是代码: Intent intent = new Intent(Intent.ACTION_VIEW, FileProvider.getUriForFile(mActivity, mActivity.getPackageName()+".provider",file));意图.addFlags(意图.FLAG_GRANT_READ_URI_PERMISSION);开始活动(意图);
-
Intent的具体情况如何?我可以看到用户可能没有支持content方案的 Web 浏览器。 -
意图用于浏览器,它将打开文件 uri。虽然 Android 11 对外部存储的限制,但文件 uri 正在返回导致崩溃的空值。
标签: android local-storage scoped-storage