Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Xamarin.Forms中的C#检查Android设备中是否启用了位置权限_C#_Android_Xamarin_Xamarin.android_Xamarin.forms - Fatal编程技术网

通过Xamarin.Forms中的C#检查Android设备中是否启用了位置权限

通过Xamarin.Forms中的C#检查Android设备中是否启用了位置权限,c#,android,xamarin,xamarin.android,xamarin.forms,C#,Android,Xamarin,Xamarin.android,Xamarin.forms,我正在创建一个应用程序,并且我正在尝试在我的Android应用程序的设备(在设置中)中获取位置权限。我正在使用Xamarin.Forms。如何通过Xamarin中的C#实现这一点?使用插件并检查IsGeoLocationEnabled属性 var locator = CrossGeolocator.Current; if (locator.IsGeoLocationEnabled) { ... } 使用James montemagno提供的权限插件。可用 特别是以下代码片段将帮助您: t

我正在创建一个应用程序,并且我正在尝试在我的Android应用程序的设备(在设置中)中获取位置权限。我正在使用Xamarin.Forms。如何通过Xamarin中的C#实现这一点?

使用插件并检查IsGeoLocationEnabled属性

var locator = CrossGeolocator.Current;

if (locator.IsGeoLocationEnabled) {
  ...
}

使用James montemagno提供的权限插件。可用

特别是以下代码片段将帮助您:

try {
 var status = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Location);
 if (status != PermissionStatus.Granted) {
  if (await CrossPermissions.Current.ShouldShowRequestPermissionRationaleAsync(Permission.Location)) {
   await DisplayAlert("Need location", "Gunna need that location", "OK");
  }
  var results = await CrossPermissions.Current.RequestPermissionsAsync(new [] {
   Permission.Location
  });
  status = results[Permission.Location];
 }
 if (status == PermissionStatus.Granted) {
  var results = await CrossGeolocator.Current.GetPositionAsync(10000);
  LabelGeolocation.Text = "Lat: " + results.Latitude + " Long: " + results.Longitude;
 } else if (status != PermissionStatus.Unknown) {
  await DisplayAlert("Location Denied", "Can not continue, try again.", "OK");
 }
} catch (Exception ex) {
 LabelGeolocation.Text = "Error: " + ex;
}