2016-07-19 21 views
1

Ich möchte um Erlaubnis für externe Speicher schreiben für Marshmallow fragen. Ich kann keine Option zum Überschreiben onRequestPermissionsResult sehen. Ich kann requestPermissions anrufen. Ich habe unten Methode erstellt. Jetzt möchte ich eine neue Aktion basierend auf dem Ergebnis aufrufen. Bitte hilf mir weiterzumachen.onRequestPermissionsResult wird nicht aufgerufen

public static boolean verifyPermissions(Activity activity, 
      String[] grantResults) { 
     boolean allPermissionsGranted = true; 

     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
      for (String result : grantResults) { 
       int outresult = activity.checkSelfPermission(result); 
       if (outresult != PackageManager.PERMISSION_GRANTED) { 
        allPermissionsGranted = false; 
        break; 
       } 
      } 

      if (!allPermissionsGranted) { 
       activity.requestPermissions(grantResults, 1); 
      } 
     } 

     return allPermissionsGranted; 
    } 

Ich habe Fragment. Ich habe versucht, unten Code direkt, aber es zeigt Fehler 'Die Methode onRequestPermissionsResult (int, String [], int []) des Typs Produkte muss überschreiben oder implementieren eine Supertype-Methode'.

Code:

@Override 
    public void onRequestPermissionsResult(int requestCode, 
      @NonNull String[] permissions, @NonNull int[] grantResults) { 

    } 
+0

[Überschreiben Sie es in Ihrer Aktivität] (https://developer.android.com/reference/android/support/v4/app/ActivityCompat.OnRequestPermissionsResultCallback.html) –

+0

@MuratK., Ich kann keine Option sehen in 'override/implement' Methoden. Bitte überprüfen Sie den aktualisierten Beitrag. –

Antwort

1

Ich kann keine Option sehen außer Kraft zu setzen onRequestPermissionsResult.

Sie würden es über die Activity überschreiben, die Sie in diese Methode übergeben.

+0

Aber ich kann keine dieser Optionen in 'override/implement' Methoden sehen. Bitte überprüfen Sie den aktualisierten Beitrag. –

+0

@JeetenParmar: "Ich habe Fragment" - das ist irrelevant. Sie rufen 'requestPermissions()' auf einer 'Activity' auf. Sie müssen 'onRequestPermissionsResult()' ** für dieselbe 'Aktivität' ** implementieren. Wenn Sie zum Aufruf von 'requestPermissions()' auf dem 'Fragment' wechseln, * dann * können Sie 'onRequestPermissionsResult()' auf demselben' Fragment 'überschreiben, solange Sie den Backport der Fragmente ('android.support.v4 .app.Fragment') und haben eine neue Support-Bibliothek (23.0.0 oder neuer). – CommonsWare

+0

Ich rufe 'requestPermissions()' nur aus dem Fragment. –

Verwandte Themen