我在用交叉地理定位器检索设备的当前纬度和经度。不过我在里面使用它出现时覆盖方法,但它不起作用。这异步获取位置方法挂起应用程序。
protected override void OnAppearing()
{
base.OnAppearing();
var position = GetPosition().Result;
var lat = position.Latitude;
var lon = position.Longitude;
}
private static async Task<Position> GetPosition()
{
var locator = CrossGeolocator.Current;
locator.DesiredAccuracy = 50;
var position = await locator.GetPositionAsync(10000);
return position;
}
细节是我正在使用这个相同获取位置应用程序中按钮的方法并且工作完美。
有人可以在这件事上帮助我吗?
尝试这个:
创建一个全局变量:
private Position _position;
然后调用 ur 方法来获取构造函数上的位置。
像这样重写你的方法:
public async void GetPosition()
{
var locator = CrossGeolocator.Current;
locator.DesiredAccuracy = 50;
var myPosition = await locator.GetPositionAsync();
_position = new Position(myPosition.Latitude, myPosition.Longitude);
}
然后花点时间在你想使用它的地方:
while(_position == new Postion(0,0))
GetPosition();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)