为什么Android允许未经许可读取文件?

Why does Android allow reading files without permission?

在我的应用程序中,我编写了以下代码来访问文件:

public void performFileSearch() {
    Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);

    intent.addCategory(Intent.CATEGORY_OPENABLE);

    intent.setType("image/*");

    startActivityForResult(intent, READ_REQUEST_CODE);
}

onActivityResult 我正在接收 Uri 所选图像。

为什么我可以在没有 READ_EXTERNAL_STORAGE 许可的情况下访问 Uri

minSdk = 19

compileSdk = 27

targetSdk = 27

测试Android 版本:

Android 4.4.2 API 19

Android 6.0.1 API 23

Why am I able to access the Uri without having READ_EXTERNAL_STORAGE permission?

因为用户参与了选择。您被授予对该文档的临时访问权限(并且,如果您使用 takePersistableUriPermissions()),您可以拥有对该文档的持久访问权限。