Xamarin Geolocation 只是挂了一些电话
Xamarin Geolocation just hangs one some phones
我有一个 class,其中有一个计时器,我每隔 15 秒尝试获取 GeoLocation。
private System.Timers.Timer _getLocationTimer { get; set; }
_getLocationTimer = new System.Timers.Timer { Interval = 15000 };
_getLocationTimer.Elapsed -= GetLocation_Handler;
_getLocationTimer.Elapsed += GetLocation_Handler;
_getLocationTimer.Start();
async void GetLocation_Handler(object sender, ElapsedEventArgs e)
{
Position position = null;
try
{
var locator = CrossGeolocator.Current;
locator.DesiredAccuracy = 100;
position = await locator.GetLastKnownLocationAsync();
if (position != null)
{
_position = new Position(position.Latitude, position.Longitude);
//got a cahched position, so let's use it.
return;
}
if (!locator.IsGeolocationAvailable || !locator.IsGeolocationEnabled)
{
//not available or enabled
return;
}
position = await locator.GetPositionAsync(TimeSpan.FromSeconds(10));
}
catch (Exception ex)
{
throw ex;
return;
}
_position = new Position(position.Latitude, position.Longitude);
if (position == null)
return;
}
我的问题出在方法 GetPositionAsync 上,因为有时并且只有一部手机没有 return(只是挂在方法中)。我正在使用 nuget 的 Xam.Plugin.Geolocator 库。有人可以告诉我我该怎么做才能让 GetPositionAsync 每次都能正常工作吗?
目前,Xamarin.Essentials 使请求权限变得更容易。将 Xamarin.Essentials 更新到最新版本。只需要在android的manifest文件和iOS的Info.plist文件中添加权限即可。
有关地理位置权限的更多详细信息,请查看下面的 link。 https://docs.microsoft.com/en-us/xamarin/essentials/geolocation?tabs=android
Xamarin.Essentials:权限:https://docs.microsoft.com/en-us/xamarin/essentials/permissions?context=xamarin%2Fxamarin-forms&tabs=android
我有一个 class,其中有一个计时器,我每隔 15 秒尝试获取 GeoLocation。
private System.Timers.Timer _getLocationTimer { get; set; }
_getLocationTimer = new System.Timers.Timer { Interval = 15000 };
_getLocationTimer.Elapsed -= GetLocation_Handler;
_getLocationTimer.Elapsed += GetLocation_Handler;
_getLocationTimer.Start();
async void GetLocation_Handler(object sender, ElapsedEventArgs e)
{
Position position = null;
try
{
var locator = CrossGeolocator.Current;
locator.DesiredAccuracy = 100;
position = await locator.GetLastKnownLocationAsync();
if (position != null)
{
_position = new Position(position.Latitude, position.Longitude);
//got a cahched position, so let's use it.
return;
}
if (!locator.IsGeolocationAvailable || !locator.IsGeolocationEnabled)
{
//not available or enabled
return;
}
position = await locator.GetPositionAsync(TimeSpan.FromSeconds(10));
}
catch (Exception ex)
{
throw ex;
return;
}
_position = new Position(position.Latitude, position.Longitude);
if (position == null)
return;
}
我的问题出在方法 GetPositionAsync 上,因为有时并且只有一部手机没有 return(只是挂在方法中)。我正在使用 nuget 的 Xam.Plugin.Geolocator 库。有人可以告诉我我该怎么做才能让 GetPositionAsync 每次都能正常工作吗?
目前,Xamarin.Essentials 使请求权限变得更容易。将 Xamarin.Essentials 更新到最新版本。只需要在android的manifest文件和iOS的Info.plist文件中添加权限即可。
有关地理位置权限的更多详细信息,请查看下面的 link。 https://docs.microsoft.com/en-us/xamarin/essentials/geolocation?tabs=android
Xamarin.Essentials:权限:https://docs.microsoft.com/en-us/xamarin/essentials/permissions?context=xamarin%2Fxamarin-forms&tabs=android