Advertisement
Guest User

Untitled

a guest
May 26th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.28 KB | None | 0 0
  1. /*
  2. 1. Проверка разрешения на необходимое действие (checkSelfPermission)
  3. 2. Если разрешения нет:
  4. 2.1. Делаем проверку на необходимость вывода объяснения (shouldShowRequestPermissionRationale)
  5. 2.1.1. Если проверка пройдена - выводим сообщение и делаем запрос
  6. 2.1.2 В противном случае - делаем запрос разрешения.
  7. В этом случае, если пользователь выбрал "Never ask again", результат по умолчанию будет false.
  8. В таком случае необходимо включать разрешение в настройках.
  9. Результаты запроса обрабатываются в onRequestPermissionsResult.
  10. */
  11.  
  12. @Override
  13. public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
  14. switch (requestCode) {
  15. case REQUEST_CODE_ASK_PERMISSIONS:
  16. if (grantResults[0] == PackageManager.PERMISSION_GRANTED)
  17. Toast.makeText(this, "permission granted inside onRequestPermResult", Toast.LENGTH_SHORT).show();
  18. else
  19. Toast.makeText(this, "permission denied inside onRequestPermResult", Toast.LENGTH_SHORT).show();
  20. break;
  21. default:
  22. super.onRequestPermissionsResult(requestCode, permissions, grantResults);
  23. }
  24. }
  25.  
  26. private void permissionExample() {
  27. int hasWriteContactsPermission = ActivityCompat
  28. .checkSelfPermission(this, Manifest.permission.WRITE_CONTACTS);
  29. if (hasWriteContactsPermission != PackageManager.PERMISSION_GRANTED) {
  30. boolean shouldShowRationale = ActivityCompat
  31. .shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_CONTACTS);
  32.  
  33. if (shouldShowRationale) {
  34. final String rationaleMesssage = "You should allow access to Contacts";
  35. getRationalMessage(rationaleMesssage, new DialogInterface.OnClickListener() {
  36. @Override
  37. public void onClick(DialogInterface dialogInterface, int i) {
  38. ActivityCompat.requestPermissions(MainActivity.this,
  39. new String[]{Manifest.permission.WRITE_CONTACTS},
  40. REQUEST_CODE_ASK_PERMISSIONS);
  41. }
  42. });
  43. }
  44. else
  45. {
  46. getMessageOKCancel("you need to allow access to Contacts",
  47. new DialogInterface.OnClickListener() {
  48. @Override
  49. public void onClick(DialogInterface dialogInterface, int i) {
  50. ActivityCompat.requestPermissions(self,
  51. new String[] {Manifest.permission.WRITE_CONTACTS},
  52. REQUEST_CODE_ASK_PERMISSIONS);
  53. }
  54. });
  55. }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement