为什么 Expo Bare Workflow Android Project 会自动授予文件和媒体权限?

Why does Expo Bare Workflow Android Project automatically grant the File and Media Permission?

问题: 我刚刚将我的 React-Native/Expo 裸工作流项目更新为 Expo SDK 43,并使用 MediaLibrary expo 包保存文件。问题是我使用 MediaLibrary.requestPermissionsAsync 并且它从不要求用户授予 WRITE_INTERNAL_STORAGEREAD_INTERNAL_STORAGE。经过进一步检查,它似乎自动授予了这些权限。我如何让它停止这样做?

我的尝试: 我已经确保我的 Android 清单同时包含 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"。我已经从我的设备上卸载了该应用程序并重新安装,但仍然授予了权限。在这一点上,我不知道如何解决这个问题,因为我在网上找到的任何类似问题都只显示了对托管工作流 Expo 项目的修复。

以下是我使用的所有版本: 世博会:43.0.3, 世博会媒体库:13.0.3, 像素 3a 运行 Android 12, 反应本机:0.64.3

如果需要更多信息,请告诉我。

编辑:我还在三星设备 运行 Android 版本 9 上对其进行了测试,它仍然自动授予 WRITE_EXTERNAL_STORAGEREAD_EXTERNAL_STORAGE 权限。

我发现如果我使用 npx react-native run-android 在我的设备上加载应用程序,它会自动授予 READ_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGE 的权限,而无需请求用户授予权限。相反,如果我进入我项目的 android 文件夹并使用 ./gradlew assembleRelease(或调试)构建 APK 并将 APK 旁加载到我的设备上,它将要求用户授予所需的权限。这样做还解决了我遇到的一个问题,该问题导致我从 @expo/vector-icons 导入的图标未与我的应用程序的发布版本捆绑在一起。