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); } }
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); } }