アプリが起動すると、このコードが実行され、許可が要求されます。Androidで権限を拒否した後に承諾すると、権限リクエストウィンドウが閉じないのですか?
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)));
}
ユーザーは、許可を受け入れるか拒否することができます。次に、次のコードを実行します。
@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();
}
}
}
要求が拒否されたのであれば、トーストは、ユーザーが(GPS座標が必要とされているため)アプリケーションを実行するために、それを受け入れる必要があるとアプリがユーザーから再び権限を要求示しています。
問題は:拒否すると、ポップアップが再び表示されます。私が5回拒否すれば、私は受け入れたい、私はすべてのポップアップが消える前に5回受け入れをクリックする必要があります。
何が原因で起こりますか?受け入れた後でも許可のポップアップが表示されるのはなぜですか?