0

Antrag Berechtigungen:Android Erlaubnisanfrage: onRequestPermissionsResult nie aufgerufen/erreicht - Mögliche Kontext Ausgabe

public class GooglePermissions extends ExternalClass 
{ 
    //... 
    private void checkPermissions() 
    { 
     if (ContextCompat.checkSelfPermission(mContext, Manifest.permission.GET_ACCOUNTS) != PackageManager.PERMISSION_GRANTED) 
     { 
      ActivityCompat.requestPermissions((Activity) mContext, new String[]{Manifest.permission.GET_ACCOUNTS}, REQUEST_GET_ACCOUNTS); 
     } 
    } 
    //... 
} 

Erlaubnisanfrage Ergebnis:

public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) 
{ 
    switch (requestCode) 
    { 
     case REQUEST_GET_ACCOUNTS: 
     { 
      if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) 
      { 
       Log.d(TAG, "Permissions Granted"); 
      } 
      else 
      { 
       Log.d(TAG, "Permissions Denied"); 
      } 
      return; 
     } 
    } 
} 

Ich bin versucht, ein Android ausführen Berechtigungsprüfung - die Methode onRequestPermissionsResult wird jedoch nie aufgerufen.

Ich vermute, dass der Schuldige ist: (Activity) mContext

... aber ich kann nicht einfach verwenden: ‚this‘, da die Klasse dieser Code enthalten ist, ist keine Aktivität.

Vorschläge werden geschätzt.

Antwort

2

onRequestPermissionsResult() muss auf der Activity implementiert werden, die Sie in requestPermissions() übergeben.

Vorschläge sind

anfordern Ihre Berechtigungen in Ihrer Aktivität oder ein Fragment geschätzt. Diese Berechtigungsanfragen müssen auf jeden Fall mit Ihrer Benutzerschnittstelle verknüpft sein, so dass sie für den Benutzer sinnvoll sind (z. B. haben sie auf das so und so ausgeführte Aktionsleistenelement getippt, das die Berechtigungsanfrage ausgelöst hat).

Wenn Sie die Ergebnisse der Berechtigungsanforderung an ein anderes Objekt weiterleiten möchten, können Sie dies gerne tun.