Wenn die App gestartet wird, wird dieser Code ausgeführt und um eine Berechtigung gebeten.Berechtigungsanfragefenster wird nicht geschlossen, wenn Sie nach dem Verweigern der Berechtigung in Android akzeptieren?
public void requestPermission()
{
ActivityCompat.requestPermissions(this,
new String[] { android.Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION },
Integer.parseInt(this.getString(R.string.LOCATION_REQUESTCODE)));
}
Der Benutzer kann dann die Erlaubnis akzeptieren oder verweigern. Es führt dann den folgenden Code aus.
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults)
{
if(requestCode == Integer.parseInt(this.getString(R.string.LOCATION_REQUESTCODE)))
{
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED)
{
// permission was granted
// Continue running the application
}
else
{
// permission denied
Toast.makeText(this, R.string.gps_required, Toast.LENGTH_LONG).show();
// Ask again to accept the permissions
requestPermission();
}
}
}
Also, wenn der Antrag abgelehnt wird, zeigt ein Toast der Benutzer es zu akzeptieren, um brauchen die Anwendung auszuführen (da die GPS-Koordinaten erforderlich sind) und die App fordert erneut die Berechtigungen vom Benutzer.
Aber das Problem ist: wenn Sie ablehnen, kommt das Popup wieder. Wenn ich 5 Mal ablehne, dann möchte ich akzeptieren, ich muss 5 Mal klicken, bevor alle Popups verschwinden.
Irgendeine Idee, was das verursacht? Warum gibt es noch Erlaubnis-Popups nach dem Akzeptieren?