通过Xamarin.Forms中的C#检查Android设备中是否启用了位置权限
我正在创建一个应用程序,并且我正在尝试在我的Android应用程序的设备(在设置中)中获取位置权限。我正在使用Xamarin.Forms。如何通过Xamarin中的C#实现这一点?使用插件并检查IsGeoLocationEnabled属性通过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
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;
}