В доступе отказано: android .Manifest.permission.READ_EXTERNAL_STORAGE - PullRequest
0 голосов
/ 11 июля 2020

Я прочитал все похожие вопросы, но не нашел решения. Это android 10. Мне нужна ваша помощь

file.isFile() возвращает true. Но file.canRead() возвращает false. Следовательно, 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>

Версии SDK в файле gradle:

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
}

1 Ответ

1 голос
/ 11 июля 2020

Попробуйте добавить атрибут android:requestLegacyExternalStorage="true" к тегу application в AndroidManifest.xml файле:

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

Также вы должны запросить это разрешение во время выполнения, проверьте эту ссылку .

...