示例#1
0
        public static void RequestPermissionsForApp(this Android.Support.V4.App.Fragment frag, string[] permissions)
        {
            //var showRequestRationale = ActivityCompat.ShouldShowRequestPermissionRationale(frag.Activity, Manifest.Permission.AccessFineLocation) ||
            //                           ActivityCompat.ShouldShowRequestPermissionRationale(frag.Activity, Manifest.Permission.AccessCoarseLocation);

            bool showRequestRationale = false;

            for (int i = 0; i < permissions.Length; i++)
            {
                if (i == 0)
                {
                    showRequestRationale = ActivityCompat.ShouldShowRequestPermissionRationale(frag.Activity, permissions[i]);
                }
                else
                {
                    showRequestRationale = showRequestRationale || ActivityCompat.ShouldShowRequestPermissionRationale(frag.Activity, permissions[i]);
                }
            }

            if (showRequestRationale)
            {
                var rootView = frag.Activity.FindViewById(AndroidResource.Id.Content);
                Snackbar.Make(rootView, "Location Permissions Needed.", Snackbar.LengthIndefinite)
                .SetAction("OK", v =>
                {
                    frag.RequestPermissions(permissions, RC_WIFI_PERMISSIONS);
                })
                .Show();
            }
            else
            {
                frag.RequestPermissions(permissions, RC_WIFI_PERMISSIONS);
            }
        }
示例#2
0
        public static void RequestPermissionsForApp(this Android.Support.V4.App.Fragment frag)
        {
            var showRequestRationale = ActivityCompat.ShouldShowRequestPermissionRationale(frag.Activity, Manifest.Permission.AccessFineLocation) ||
                                       ActivityCompat.ShouldShowRequestPermissionRationale(frag.Activity, Manifest.Permission.AccessCoarseLocation);

            if (showRequestRationale)
            {
                var rootView = frag.Activity.FindViewById(AndroidResource.Id.Content);
                Snackbar.Make(rootView, "Location Permissions Needed.", Snackbar.LengthIndefinite)
                .SetAction("OK", v =>
                {
                    frag.RequestPermissions(LOCATION_PERMISSIONS, RC_LOCATION_PERMISSIONS);
                })
                .Show();
            }
            else
            {
                frag.RequestPermissions(LOCATION_PERMISSIONS, RC_LOCATION_PERMISSIONS);
            }
        }