在Android 11中,为了保护用户的隐私和数据,对于应用访问外部存储的权限进行了更改。因此,您无法使用MANAGE_EXTERNAL_STORAGE权限来让应用打开具有特定应用程序扩展名的文件。但是,您可以请求SAF(Storage Access Framework)权限来覆盖此限制并在应用程序中打开文件。以下是代码示例:
private void requestPermission() { Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("/"); String[] mimeTypes = {"image/*", "application/pdf", "text/plain"}; intent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes); startActivityForResult(intent, REQUEST_CODE_OPEN_DOCUMENT); }
@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == REQUEST_WORK