0

Hallo und guten Abend Stackoverflowers,So fordern Sie die Android Permission API> = 23 an?

Ich habe eine Frage ist dies erlangte auf meiner MainActivity um Berechtigungen für externe Karte lesen GPS usw.?

in meinem onCreate haben

checkPermissions();

so haben dann

private void checkPermissions() { 
    ActivityCompat.requestPermissions(this,new String[]{ 
      Manifest.permission.ACCESS_FINE_LOCATION}, 1); 

    ActivityCompat.requestPermissions(this,new String[]{ 
      Manifest.permission.ACCESS_COARSE_LOCATION}, 2); 

    ActivityCompat.requestPermissions(this,new String[]{ 
      Manifest.permission.READ_EXTERNAL_STORAGE}, 3); 

} 

public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { 
    switch (requestCode) { 
     case 1: { 
      if (grantResults.length > 0 
        && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
      } else { 
      } 
      return; 
     } 
     case 2: { 
      if (grantResults.length > 0 
        && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
      } else { 
      } 
      return; 
     } 
     case 3: { 
      if (grantResults.length > 0 
        && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
      } else { 
      } 
      return; 
     } 
    } 
} 

können, die Optimierung noch? und die Berechtigungen werden abgefragt? oder bin ich völlig falsch?

Vielen Dank für Ihre Antworten

Antwort

1

Zuerst Sie die Berechtigungen in Ihrem AndroidManifest.xml erklären müssen:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 

Sie alle Berechtigungen in onCreate nicht verlangen, fordern sie, kurz bevor Sie es benutzen werden . Führen Sie für jede Berechtigung eine der folgenden Methoden aus, und prüfen Sie, ob Sie sie bereits haben, bevor Sie sie anfordern.

private void checkReadPermission() { 
    if (ContextCompat.checkSelfPermission(this, 
      Manifest.permission.READ_EXTERNAL_STORAGE) 
     != PackageManager.PERMISSION_GRANTED) { 

     ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 3); 
    } 
} 
+0

Dank meiner compailer sagen Fehler: (482, 17) Fehler: Symbolvariable ContextCompat EDIT nicht finden können: import android.support.v4.content.ContextCompat; lösen –

+0

Guten Morgen, ich habe diesen Weg auf meinem Galaxy S7 testen und es ist nicht die Leseberechtigung fragen !!? kannst du mir helfen, dieses Problem zu beheben? –

+0

Mega Fail Ich habe die Manifest-Datei nicht updated..now funktioniert Thx @ Juan-Cruz-Soler –

Verwandte Themen