web-dev-qa-db-fra.com

Impossible de trouver Symbol Manifest.permission.WRITE_EXTERNAL_STORAGE sur v23

Je compile du code avec le fichier build.gradle suivant

Android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {

        applicationId "com.example"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
}

Pour accéder à l'enregistrement de la photo dans la carte SD, j'ai ouvert la boîte de dialogue d'autorisation pour V23

comme ci-dessous capture d'écran

enter image description here

Mais je reçois l'erreur suivante

Impossible de trouver le symbole Manifest.permission.WRITE_EXTERNAL_STORAGE

J'ai mis sdkVersion à 23 mais pourquoi j'obtiens toujours cette erreur

19
Siddhpura Amit

Enfin, j'ai trouvé que le fichier Menifest est généré automatiquement par Android Studio

Dans AndroideMenifest, j'ai écrit le code suivant pour ParsePushNotification

 <!--
      IMPORTANT: Change "com.parse.starter.permission.C2D_MESSAGE" in the lines below
      to match your app's package name + ".permission.C2D_MESSAGE".
    -->
    <permission Android:protectionLevel="signature"
        Android:name="com.example.permission.C2D_MESSAGE" />
    <uses-permission Android:name="com.example.permission.C2D_MESSAGE" />

et au-dessous du fichier menifest est généré

enter image description here

Donc, quand j'ai écrit du code ci-dessous, ça fonctionne

Android.Manifest.permission.WRITE_EXTERNAL_STORAGE

au lieu de

Manifest.permission.WRITE_EXTERNAL_STORAGE

48
Siddhpura Amit

N'écrivez que Android avant la classe manifeste. Modifiez:

Manifest.permission.WRITE_CALENDAR

à:

Android.Manifest.permission.WRITE_CALENDAR

23
Anand Raj Mehta

Je pense que vous pouvez utiliser la classe Manifest de Android dans Android.Manifest.permission ou Android.Manifest.permission_group. Pour les types d'autorisation détaillés, vous pouvez lire à partir de cette Manifest.permission , regarde ça

int permissionCheck = ContextCompat.checkSelfPermission(thisActivity,
    Android.Manifest.permission.WRITE_CALENDAR);
7
icaksama

la solution à ce problème est simple .. il suffit d'ajouter le mot "Android" avant le mot "manifeste".

Android.Manifest.permission.WRITE_CALENDAR

3
Xcoder

Lisez cet article s'il vous plaît.

Étant donné que le système d'autorisations a été repensé, certaines autorisations doivent être révoquées et d'autres non. L'autorisation spécifique que vous demandez se trouve dans un groupe appelé Android.permission-group.STORAGE. Regarde ça.

Essayez ceci:

private static final int REQUEST_EXTERNAL_STORAGE = 1;
    private static String[] PERMISSIONS_STORAGE = {Manifest.permission.READ_EXTERNAL_STORAGE,
            Manifest.permission.WRITE_EXTERNAL_STORAGE};

            ActivityCompat.requestPermissions(mActivity, PERMISSIONS_STORAGE,
                     REQUEST_EXTERNAL_STORAGE);
1
Kostas Drak