我使用的是flutter + file_picker 8.0.7。 iOS 和 Android 都允许我访问设备上的文档文件,而无需征求用户许可。这正常吗?
它是 AndroidMenifest.xml 的一部分。
<uses-permission android:name="android.permission.CAMERA" />
<!-- External Storage Read Permission (Access Storage Under Android 13)-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<!-- External storage write permission (android 9 and below) -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- (Common with Android 11 and later) If you need Manage External Storage rights in addition to media (you need to fill out the Declaration of Rights form when submitting apps to the Google Play Store -->
<!--<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>-->
<!-- (Android 13 and later) Media access segmentation, IMAGES/VIDEO all show only one permission request on request -->
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<!-- (Android 14 and later) Photo/Video partial access -->
<uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED" />
当我问Gemini时(file_picker和权限) ios :据说您不需要获得额外的权限,因为您使用 UIDocument Interaction 控制器。 android : Android 10及以下请求read_external_storage权限,Android 11及以上不需要单独请求权限。
我无法相信它。在某个地方,Android说媒体文件应该给出READ_MEDIA_IMAGES等,并使用SAF来访问其他文件。但我什至不知道file_picker是否使用了SAF(我还不完全了解SAF本身)这似乎与Gemini的观点相冲突。
正如Gemini所说,我访问媒体文件(照片、视频等)需要权限吗?访问其他文档文件时不需要获得用户的权限??
我如上编写了androidMenifest.xml,我只是使用了file_picker。除此之外,我没有做任何有关许可的事情。测试仪器是android 14。
“在运行 Android 4.4(API 级别 19)及更高版本的设备上,您的应用程序 可以与文档提供者交互,包括外部存储 使用存储访问框架的卷和基于云的存储。 该框架允许用户与系统选择器交互以进行选择 文档提供者并选择特定文档和其他文件 您的应用程序来创建、打开或修改。
因为用户参与选择文件或目录 您的应用程序可以访问,此机制不需要任何系统 权限、用户控制和隐私得到增强。此外, 这些文件存储在特定于应用程序的目录之外,并且 在媒体商店之外,在您的应用程序启动后保留在设备上 已卸载。
使用该框架涉及以下步骤:
应用程序调用包含与存储相关的操作的意图。这 操作对应于框架的特定用例 可用的。用户会看到一个系统选择器,允许他们浏览 文件提供者并选择一个位置或文件 发生与存储相关的操作。应用程序获得读写权限 访问表示用户选择的位置的 URI 或 文档。使用此 URI,应用程序可以对所选的操作执行操作 位置。”