【问题标题】:Xamarin XLabs Geolocator not working on AndroidXamarin XLabs Geolocator 无法在 Android 上运行
【发布时间】:2017-09-04 13:39:48
【问题描述】:

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

【问题讨论】:

    标签: c# xamarin android-emulator xlabs


    【解决方案1】:

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

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

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

    【讨论】:

    • 我试过了,但它有同样的问题。现在我正在使用 Google Play 服务 - 位置。在 android 访问位置的核心,它会订阅更改的位置,甚至获取当前位置。第一次运行应用程序时,它会从 null 更改为 mock 位置。之后位置被存储,所以它不会改变,如果你试图得到它,它将无休止地运行。只有 Google 允许您直接访问存储在会话之间的最后一个已知位置。
    【解决方案2】:

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

    更多细节在这里:

    Getting Location on Android Emulator more then once

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-13
      • 2021-12-07
      • 1970-01-01
      • 2016-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多