我正在开发一个 Flutter 应用程序。我已经使用
open_file
包打开文件有一段时间了,但突然它不起作用了。我尝试更改代码以打印出 envokeMethod
的结果,这就是终端中显示的内容。
I/flutter (13494): Result: {"type":-3,"message":"Permission denied: android.Manifest.permission.MANAGE_EXTERNAL_STORAGE"}
我尝试在
MANAGE_EXTERNAL_STORAGE
中添加权限 AndroidManifest.xml
但没有成功。我检查了我的应用程序权限,它可以访问文件和媒体。
任何帮助将不胜感激。谢谢。
经过一番查找,终于找到了问题所在。当我检查应用程序的权限时,由于某种原因,文件和媒体部分只有 2 个选项,即“仅媒体”和“拒绝”。由于某种原因,文件不包含在那里,所以我查了一下,发现从 Android 11 开始,您需要一个特定的权限,称为“manageExternalStorage”。所以我必须请求存储权限,然后管理ExternalStorage权限,然后我才能在文件和媒体权限中看到第三个选项,即所有文件。申请并请求该权限后, open_file 工作得很好。但是,事实证明 ManageExternalPermission 是一个非常敏感的权限,就我而言,我的应用程序不满足请求该权限的要求,因此当我将其发布到 Play 商店时被拒绝。所以我最终分叉了 open_file 包,对其进行了更改,以便它不需要 ManageExternalStorage 权限,之后一切正常。
据我所知,open_file 通过支持该特定文件类型的本机应用程序打开文件。如果没有应用程序支持您尝试打开的文件类型,您将无法打开该文件。在这种情况下,您可能必须依赖第三方软件包才能打开该文件。