Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- 1. Проверка разрешения на необходимое действие (checkSelfPermission)
- 2. Если разрешения нет:
- 2.1. Делаем проверку на необходимость вывода объяснения (shouldShowRequestPermissionRationale)
- 2.1.1. Если проверка пройдена - выводим сообщение и делаем запрос
- 2.1.2 В противном случае - делаем запрос разрешения.
- В этом случае, если пользователь выбрал "Never ask again", результат по умолчанию будет false.
- В таком случае необходимо включать разрешение в настройках.
- Результаты запроса обрабатываются в onRequestPermissionsResult.
- */
- @Override
- public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
- switch (requestCode) {
- case REQUEST_CODE_ASK_PERMISSIONS:
- if (grantResults[0] == PackageManager.PERMISSION_GRANTED)
- Toast.makeText(this, "permission granted inside onRequestPermResult", Toast.LENGTH_SHORT).show();
- else
- Toast.makeText(this, "permission denied inside onRequestPermResult", Toast.LENGTH_SHORT).show();
- break;
- default:
- super.onRequestPermissionsResult(requestCode, permissions, grantResults);
- }
- }
- private void permissionExample() {
- int hasWriteContactsPermission = ActivityCompat
- .checkSelfPermission(this, Manifest.permission.WRITE_CONTACTS);
- if (hasWriteContactsPermission != PackageManager.PERMISSION_GRANTED) {
- boolean shouldShowRationale = ActivityCompat
- .shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_CONTACTS);
- if (shouldShowRationale) {
- final String rationaleMesssage = "You should allow access to Contacts";
- getRationalMessage(rationaleMesssage, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialogInterface, int i) {
- ActivityCompat.requestPermissions(MainActivity.this,
- new String[]{Manifest.permission.WRITE_CONTACTS},
- REQUEST_CODE_ASK_PERMISSIONS);
- }
- });
- }
- else
- {
- getMessageOKCancel("you need to allow access to Contacts",
- new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialogInterface, int i) {
- ActivityCompat.requestPermissions(self,
- new String[] {Manifest.permission.WRITE_CONTACTS},
- REQUEST_CODE_ASK_PERMISSIONS);
- }
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement