Получение и наблюдение / прослушивание разрешений андроида во время выполнения возвращаются в приложение - PullRequest
0 голосов
/ 02 февраля 2019

Code

 private void pickPermissions(){

   showDialog("", "You have denied some necessary permissions permanently"
                    + " We will direct you to [Settings] screen, Turn on all permissions at [Settings] -> [Permissions].",
            "Go To Settings", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                    //Todo: open setting screen for permission result
                    Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
                    Uri uri = Uri.fromParts("package", getPackageName(), null);
                    intent.setData(uri);
                    startActivityForResult(intent, REQUEST_PERMISSION_SETTING);
                    //finish();
                }
            }, "No, Close App", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                    finish();
                }
            },false);

}

, пожалуйста, сообщите мне, как узнать, предоставил ли пользователь все разрешения или нет в моем приложении с помощью onActivityResult ()?и есть ли способ вернуть пользователя (автоматически) в приложение с экрана настроек, как только они предоставят все разрешения на экране настроек приложения, не нажимая кнопку «Назад»?

1 Ответ

0 голосов
/ 02 февраля 2019

Используя метод ContextCompat # checkSelfPermissions , вы можете получить статус предоставления разрешения для каждого запрошенного вами разрешения в отдельности, если любое из них не предоставлено, вы можете перевести пользователя на экран настроек в качестве вашегокод делает.

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

...