我正在创建一个具有“我附近有什么”类型功能的应用程序,并且我有一些代码可以找到用户的位置。
我发现虽然调用已完成,但异步似乎永远不会返回。
我正在使用的代码是:
GeoCoordinate coord;
private async void GetNearMe()
{
try
{
Geolocator geolocator = new Geolocator();
Geoposition geoposition = await geolocator.GetGeopositionAsync();
coord = geoposition.Coordinate.ToGeoCoordinate();
}
catch (Exception ex)
{
<snip>
}
}
但是代码有时只到达“coord =”行(并返回正确的数据)。如果是这样,由于某种原因,它可能不会再次出现。如果它不起作用,它也永远不会到达 catch 块。它似乎只是挂起。
有没有人知道我可能做错了什么/更好的方法?
- 我正在使用 Caliburn Micro,它位于称为 OnActivate 的 ViewModel 中。
- 我在模拟器和我的 Lumia 920 上都试过了,两者都发生了。
- 我尝试关闭并再次打开定位服务,没有任何变化。