我正在开发一个 .NET MAUI 应用程序,以使用地理定位和地理编码 API 获取用户的当前位置。但是,在尝试对当前位置进行地理编码时,我遇到了异常,该异常仅发生在 iOS 18 上,而不是 iOS 17 上。我还确保在 Info.plist 文件中正确设置权限。异常详情如下
Foundation.NSErrorException:错误域=kCLErrorDomain代码=2 “(空)”位于 Microsoft.Maui.Devices.Sensors.GeocodingImplementation.GetPlacemarksAsync(双, 双)在 DiDe.CabManagement.ViewModels.CancelBookingViewModel.GetLocationAsync()
var status = await
Permissions.CheckStatusAsync<Permissions.LocationWhenInUse>();
if (status != PermissionStatus.Granted) {
// Request permission if it's not already granted
status = await Permissions.RequestAsync<Permissions.LocationWhenInUse>(); }
if (status == PermissionStatus.Granted) {
Location location = await Geolocation.GetLocationAsync();
if (location != null)
{
var placemarks = await Geocoding.GetPlacemarksAsync(location.Latitude, location.Longitude);
App.CurrentLocation = location;
} }
以下是您可以考虑的几件事,
Geocoding.GetPlacemarksAsync()
呼叫需要网络连接。因此,请确保您正在尝试的 iOS 18 设备/模拟器是否具有稳定的网络连接。