我正在使用xamarin.forms.maps创建一个xamarin应用程序,并想知道是否有一种方法可以订阅一个事件,告诉我用户当前位置何时发生变化。我可以通过geolocator插件获取用户的当前位置,但我想要一个事件驱动的方式来更新用户移动时的当前位置,因为我想在移动x米时将用户的当前位置保存到数据库。我搜索过高低,无法找到我真正想要的东西。任何帮助将不胜感激。
答案 0 :(得分:1)
官方文档中提供了大量示例。
例如,您可以订阅Xamarin.Android
作为已读here,在FusedLocationProviderClient.RequestLocationUpdatesAsync
订阅位置更新。您也可以使用LocationService
,但正如documentation中所述,此服务是较旧的API,最适用于未安装Google Play服务的设备。
您可以使用FusedLocationProviderClient
here找到使用LocationService
here和另一个示例的示例。
对于iOS,您可以按照here所述订阅CLLocationManager.LocationsUpdated
事件。您可以找到此here的示例。
然后,您可以创建自己的ILocationManager
,这是专门用于监听PCL项目中位置更新的实施平台。
答案 1 :(得分:0)
对于任何可能遇到此问题的人,
Geolocator有一个名为PositionChanged的事件,可以在PCL中订阅。可悲的是,当我查看代码时很容易找到。