Спросите все разрешения Android Studio снова и снова - PullRequest
0 голосов
/ 17 марта 2020

Мне нужен доступ к местоположению пользователя, и разрешение для него имеет решающее значение для моего приложения. Я попробовал этот код, но он не запрашивал разрешения во второй раз (и так далее):

while(ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED)
{
    ActivityCompat.requestPermissions(MainActivity.this, permissions, 1);
}

1 Ответ

1 голос
/ 17 марта 2020

Если разрешение действительно важно для продолжения в приложении, насколько я знаю, единственное, что вы можете сделать, это просто завершить sh приложение, когда вы получаете в обратном вызове разрешений, что это разрешение не было предоставлено .

Таким образом, в следующий раз, когда приложение откроется, оно снова запросит разрешение на местоположение.

Мы проверяем разрешения на основной деятельности и показываем тост, который говорит, что разрешения требуются. и fini sh основной вид деятельности в одном приложении, который не имеет смысла использовать его без местоположения. И приложение опубликовано в магазине Google Play.

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    if (permissions.length > 0 && requestCode == REQUEST_PERMISSIONS) {
        if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            setUp();
        } else {
            Toast.makeText(this, R.string.permissions_required, Toast.LENGTH_LONG).show();
            finish();
        }
    }
}

Даже если было бы лучше, если бы оставшееся приложение можно было использовать без местоположения, но иногда нет другого пути, и если вы пытаетесь попросите одно и то же разрешение снова и снова, в какой-то момент диалоговое окно не появится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...