2

我正在使用 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。

4

1 回答 1

0

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

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

编辑它工作得更好,但即使使用这个插件,我也会收到报告说收到的位置已关闭。继续寻找更好的解决方案......

于 2015-09-08T21:05:29.517 回答