1

我可以访问清单文件中检查的精细和粗略位置,并且应用程序第一次在 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);
    }
}
4

2 回答 2

0

请注意他们在GitHub页面上的注释:

注意:此项目不再维护。它可能不适用于较新版本的 Xamarin.Forms。

如果您可以选择,我认为将其集成到您的项目中是不明智的。相反,请查看 James Montemagno 的Geolocator Plugin

于 2017-04-10T08:50:50.860 回答
0

我遇到了同样的问题,但显然这就是模拟器的工作方式。代码没有问题,您必须打开模拟器设置,转到位置并单击发送。

更多细节在这里:

在 Android 模拟器上多次获取位置

于 2017-06-20T08:56:00.213 回答