权限被拒绝:android.Manifest.permission.READ_EXTERNAL_STORAGE

Permission denied: android.Manifest.permission.READ_EXTERNAL_STORAGE

我已经阅读了所有类似的问题,但找不到解决方案。是 android 10。 我需要你的帮助

file.isFile() returns 正确。 但是 file.canRead() returns 错误。因此, FileInputStream(file) 导致以下错误; android.system.ErrnoException:打开失败:EACCES(权限被拒绝)

清单文件:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
       <uses-permission android:name="android.permission.INTERNET"/>
        <uses-permission android:name="android.permission.CAMERA" />
    
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    
   <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="MyApp"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"

    android:name="androidx.multidex.MultiDexApplication">

    <activity android:name=".allresults"/>

    <activity android:name=".DiagnoseActivity">
        <intent-filter>
            <action android:name="com.dailystudio.deeplab.MainActivity" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity android:name=".profileActivity" />

    <activity android:name=".LoginActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity android:name=".MainActivity" />

    <activity android:name="com.theartofdev.edmodo.cropper.CropImageActivity"
        android:theme="@style/Base.Theme.AppCompat"/> 

    
    </manifest>

gradle 文件中的 SDK 版本是;

android {
    compileSdkVersion 29 // <====
    buildToolsVersion "29.0.3"

    defaultConfig {
        applicationId "com.example.HT1"
        minSdkVersion 23  // minSdkVersion 16  // <====
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

        multiDexEnabled true

    }

项目级别的gradle个代码;

buildscript {
    ext.kotlin_version = '1.3.72' //'1.3.61'
    repositories {
        google()
        jcenter()
        
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.6.3'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.3.3'

    }
}

allprojects {
    repositories {
        google()
        jcenter()
        
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

请尝试将 android:requestLegacyExternalStorage="true" 属性添加到 AndroidManifest.xml 文件中的 application 标签:

<application
    ...
    android:requestLegacyExternalStorage="true">

您还应该在运行时请求该权限,检查 this link