【问题标题】:GetPositionAsync TaskCancelExceptionGetPositionAsync 任务取消异常
【发布时间】:2021-10-05 12:45:18
【问题描述】:

我遇到的一个问题是,当我尝试获取位置信息时,系统会抛出 TaskCancel 异常。 当时我尝试在不联网的情况下打开谷歌地图(有人回答可以通过打开谷歌地图解决),然后回到APP再次尝试获取位置。结果还是给了我异常。 然后,我将智能手机连接到互联网,然后再次打开谷歌地图,然后返回APP获取位置。我现在可以得到位置信息了!!!

获取不到gps位置的问题并不是每部智能手机都会出现,而是vivo V2050(Android11)出现。

有人知道这个问题吗? 如何解决?

try
{
var locator=CrossGeolocator.Current;
var position = await locator.GetPositionAsync(timeoutMillseconds: 10000);
var long=position.Longitude;
}
catch (TaskCancelException ex)
{
}

【问题讨论】:

    标签: android exception xamarin.android gps location


    【解决方案1】:

    根据您提供的代码,您使用 Xam.Plugin.Geolocator。

    目前,我们建议改用Xamarin.Essentials

    请求权限并在清单文件中声明硬件特性后,您可以使用以下代码获取当前位置。

       CancellationTokenSource cts;
    
     async Task GetCurrentLocation()
     {
         try
         {
             var request = new GeolocationRequest(GeolocationAccuracy.Medium, TimeSpan.FromSeconds(10));
             cts = new CancellationTokenSource();
             var location = await Geolocation.GetLocationAsync(request, cts.Token);
    
             if (location != null)
             {
                 Console.WriteLine($"Latitude: {location.Latitude}, Longitude: {location.Longitude}, Altitude: {location.Altitude}");
             }
         }
         catch (FeatureNotSupportedException fnsEx)
         {
             // Handle not supported on device exception
         }
         catch (FeatureNotEnabledException fneEx)
         {
             // Handle not enabled on device exception
         }
         catch (PermissionException pEx)
         {
             // Handle permission exception
         }
         catch (Exception ex)
         {
                  // Unable to get location
         }
     }
    
     protected override void OnDisappearing()
     {
         if (cts != null && !cts.IsCancellationRequested)
        cts.Cancel();
         base.OnDisappearing();
     }
    

    有关更多详细信息,您可以查看 MS 文档。 https://docs.microsoft.com/en-us/xamarin/essentials/geolocation?tabs=android

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-12
      • 1970-01-01
      相关资源
      最近更新 更多