【发布时间】: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