READ_EXTERNAL_STORAGE 是否可以根据情况在 Android 11 中提供不同程度的访问权限?

Is it possible for READ_EXTERNAL_STORAGE to give varying degrees of access, in Android 11 depending on the circumstance?

我有两个应用程序,它们都做不同的事情,但都针对 sdk 版本 30,并且在清单和运行时都请求 READ_EXTERNAL_STORAGE 权限。两者都是全新的并且以前没有安装在设备上。

使用三星 phone 运行 Android 11,然后我检查了两个应用程序的权限设置,发现了这个差异:

这可能吗?应用程序 #2 绝对不会请求 MANAGE_EXTERNAL_STORAGE,它们都只请求有效的读取权限。但是应用程序#2 对系统文件管理器具有相同的权限,这显然是不对的。

会不会是 App #2 使用了一个使用 MANAGE_EXTERNAL_STORAGE 的库? 您可以在构建后比较两个应用程序的 AndroidManifest。它们并不总是与您自己为应用程序编写的 AndroidManifest 相同。 库可以定义自己所需的权限,并将合并到最终的 AndroidManifest

发现问题。应用程序 #2 是使用 androiddeployqt 构建的,由于某种原因覆盖了我指定的目标 sdk 版本,因此它实际上是一个 sdk 级别 28 应用程序。我强制它以正确的版本为目标,它现在按预期运行。