Я использую запрос разрешения во время выполнения, но есть проблема с этим. Кажется, что метод обратного вызова onRequestPermissionsResult
называется бесконечно. Поэтому, когда пользователь отрицает запрос, приложение не отвечает.onRequestPermissionsResult называется бесконечно
Диалог разрешения появляется каждый раз, когда пользователь нажимает «deny». Только нажав «никогда не спрашивать снова», он снова не появится снова. * При нажатии «allow» он работает хорошо - без проблем.
Есть ли способ отменить метод, который вызывается через один раз?
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED)
{
ActivityCompat.requestPermissions(this, new String[]{ Manifest.permission.ACCESS_FINE_LOCATION }, LOCATION_PERMISSION_CUSTOM_REQUEST_CODE);
}
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
switch(requestCode)
{
case LOCATION_PERMISSION_CUSTOM_REQUEST_CODE:
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// permission was granted
MyManager.connect();
return;
} else {
// permission denied
return;
}
default:
return;
}
}
, пожалуйста, внесите свой код –
@GilMoshayof отредактировал это сообщение) thanks – BVtp
Что происходит в MyManager.connect()? –