private static void GetPermissions(string permission, AppCompatActivity activity, string[] permissionsGroupLocation) { if (activity.CheckSelfPermission(permission) == (int)Android.Content.PM.Permission.Granted) { Toast.MakeText(activity, "Permission granted", ToastLength.Short).Show(); return; } if (activity.ShouldShowRequestPermissionRationale(permission)) { //set Alert for executing task Android.App.AlertDialog.Builder alert = new Android.App.AlertDialog.Builder(activity); alert.SetTitle("Permission Needed"); alert.SetMessage("Need permission to continue"); alert.SetPositiveButton("Request permission", (senderAlert, args) => { activity.RequestPermissions(permissionsGroupLocation, RequestLocationId); }); alert.SetNegativeButton("Cancel", (sendAlert, args) => { Toast.MakeText(activity, "Cancelled", ToastLength.Short).Show(); }); Dialog dialog = alert.Create(); dialog.Show(); return; } activity.RequestPermissions(permissionsGroupLocation, RequestLocationId); }
public static void RequestPermissionsForApp(this AppCompatActivity activity) { var showRequestRationale = ActivityCompat.ShouldShowRequestPermissionRationale(activity, Manifest.Permission.AccessFineLocation) || ActivityCompat.ShouldShowRequestPermissionRationale(activity, Manifest.Permission.AccessCoarseLocation); if (showRequestRationale) { var rootView = activity.FindViewById(AndroidResource.Id.Content); Snackbar.Make(rootView, Resource.String.request_location_permissions, Snackbar.LengthIndefinite) .SetAction(Resource.String.ok, v => { activity.RequestPermissions(LocationPermissions, RC_LOCATION_PERMISSIONS); }) .Show(); } else { activity.RequestPermissions(LocationPermissions, RC_LOCATION_PERMISSIONS); } }