Xamarin 表单获取当前位置需要更多时间

Posted

技术标签:

【中文标题】Xamarin 表单获取当前位置需要更多时间【英文标题】:Xamarin forms get current location take more time 【发布时间】:2021-03-31 07:01:18 【问题描述】:

我有 xamarin 表单应用程序并具有捕获当前用户位置的功能,并且我使用 CrossGeolocator PLugin 以及获取位置的这部分代码:

   locator = CrossGeolocator.Current;
   var position = await locator.GetPositionAsync();
   order.@long = position.Longitude;
   order.lat = position.Latitude;

它的返回位置,但有时需要更多时间才能返回当前位置是否有任何解决方案来减少位置捕获时间。 谢谢

【问题讨论】:

【参考方案1】:

如果您想加快处理速度,请使用Xamarin.Essentials。 Xamarin.Essentials 提供了一种获取用户位置的绝佳方式,这是比使用 Geolocator 插件更快的替代方法。不仅如此 - Xamarin.Essentials 已经过良好测试,并得到 Microsoft 自身的支持。

首先将以下代码粘贴到您的androidManifest.xml 文件中:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature android:name="android.hardware.location" android:required="false" />
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
<uses-feature android:name="android.hardware.location.network" android:required="false" />

这是获取用户纬度和经度的示例 - 您可以将以下代码调整到您的项目:

var position = await Xamarin.Essentials.Geolocation.GetLocationAsync();

            double latitude = position.Latitude;

            double longitude = position.Longitude;

有关地理位置的更多信息,请访问https://docs.microsoft.com/en-us/xamarin/essentials/geolocation?tabs=android。

当您使用Xamarin.Essentials 时,您应该会注意到速度的显着差异。

【讨论】:

确实如此。使用 Geolocator,您会牺牲速度,但根据 James,您会获得精确度。

以上是关于Xamarin 表单获取当前位置需要更多时间的主要内容,如果未能解决你的问题,请参考以下文章

如何在 xamarin 表单中获得更多输入?

使用 Xamarin 返回 0 获取当前 gps 位置

xamarin 中的 Android 后台位置构建需要永远

Xamarin.Forms / Xamarin.Android的任何插件用于选择保存文件的目录?

如何获取特定元素的文本 - Xamarin UI 测试

以 xamarin 形式获取经纬度的设备位置