我在清单文件中检查了精确和粗略的位置,并且第一次在Android模拟器上运行应用程序(Android_Accelerated_x86(Android 7.1 - API 25))它记录了纬度。但是,如果我第二次部署应用程序,第三次等等,即使超时为10000毫秒(没有抛出异常),它也会无休止地运行。如果我关闭并打开模拟器并再次部署应用程序,它将再次工作,依此类推。关于如何解决这个问题的任何想法?
public static class NetworkingTools
{
private static IGeolocator locator = Resolver.Resolve<IGeolocator>();
static NetworkingTools()
{
locator.DesiredAccuracy = 50;
locator.StartListening(2000, 0, true);
GetPosition();
}
public async static void GetPosition()
{
var position = await locator.GetPositionAsync(10000);
System.Diagnostics.Debug.WriteLine(position.Latitude);
}
}
答案 0 :(得分:0)
请注意他们在GitHub页面上的评论:
注意:此项目不再维护。它可能不适用于较新版本的Xamarin.Forms。
如果您有选择的话,我认为将它集成到您的项目中是不明智的。而是看看James Montemagno的Geolocator Plugin。
答案 1 :(得分:0)
我遇到了同样的问题,但显然这就是模拟器的工作方式。代码没有问题,您必须打开EMULATOR设置,转到位置并点击发送。
此处有更多详情: