Ejemplo n.º 1
0
        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);
            }
        }