【问题标题】:GetPositionAsync does not return on real device when indoors - Xamarin AndroidGetPositionAsync 在室内时不会在真实设备上返回 - Xamarin Android
【发布时间】:2015-03-01 18:44:55
【问题描述】:

我正在使用 Xamarin 开发需要 GPS 的 iOS 和 Android 版本。

在 iOS 上它工作正常,但是现在开发 Android 版本时我的 GPS 出现了一些问题。它不获取 GPS 但超时。但是,在模拟器上(使用 Genymotion)它会立即获取坐标。请注意,我使用的是 Xamarin.Mobile(最新插件 0.7.5)。

    private async Task<HelpPosition> CreateGeolocator ()
    {
        int accuracy = SettingsManager.Instance.GetSettings ().Accuracy;
        Geolocator locator = new Geolocator (this) { DesiredAccuracy = accuracy * 10 };

        Position p = await locator.GetPositionAsync (timeout: 10000);

        return new HelpPosition{ Latitude = p.Latitude, Longitude = p.Longitude };
    }

这总是代码在 10 秒后超时。我已经设置了 ACCESS_COARSE_LOCATION 和 ACCESS_FINE_LOCATION 权限。

这个问题似乎只发生在室内。然而,谷歌地图完全可以得到我的确切位置。我已经检查了定位服务中的所有设置(使用无线网络和使用 GPS 卫星)。该设备是三星 Note 2。

【问题讨论】:

  • 可能精度太高,Geolocator 无法在 10 秒内以这种精度获得位置。
  • 我把精度提高到20000m,超时设置为30s。仍然超时:/
  • 嗨@Sunkas,你找到解决这个问题的方法了吗?我遇到了同样的问题。
  • 抱歉,最近没有在这个项目上工作过。如果您找到解决方案或者您是否编写了另一个 Stackoverflow 问题,请告诉我。

标签: android gps xamarin xamarin.mobile


【解决方案1】:

从来没有让 Xamarin.Mobile 在室内的 Android 上令人满意地工作,所以我测试了 Component Store 中唯一可用的其他选项:Geolocator。像魅力一样工作!

https://components.xamarin.com/view/GeolocatorPlugin

编辑效果更好,但即使使用此插件,我也会收到报告说收到的位置已关闭。继续寻找更好的解决方案...

【讨论】:

  • 您找到更好的解决方案了吗?谢谢
  • 不,从未得到满意的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-05
  • 1970-01-01
  • 2013-10-04
  • 2019-11-12
  • 1970-01-01
  • 1970-01-01
  • 2020-04-23
相关资源
最近更新 更多