Xamarin GeoLocatorPlugin在运行时更改minDistance

时间:2018-10-12 13:22:11

标签: xamarin location geofencing

在我的xamarin-App中,我需要地理围栏。

我正在使用GeoLocatorPlugin

是否有一种方法可以在运行时(开始监听之后)影响参数“ minDistance”?

await StartListeningAsync(TimeSpan.FromSeconds(5), "minDistance");

背景: 我想根据给定的“兴趣点”(它们到用户位置的距离)来优化“位置更新(更改)”的间隔。

事先打招呼。

1 个答案:

答案 0 :(得分:0)

我目前正在通过Web服务获取时间和距离(我现在不知道您的情况,但是您可以执行与此类似的操作),并且我这样保存(设备的本地存储):

  dynamic obj = JsonConvert.DeserializeObject<Rootobject>(responseString);
                Application.Current.Properties["gps_distancia"] = obj.rssUser.gps_distancia;
                Application.Current.Properties["gps_tempo"] = obj.rssUser.gps_tempo;

然后我调用来自Web服务的存储时间和距离,并将其保存在设备中:

           int tempoWebService = Int32.Parse(Application.Current.Properties["gps_tempo"].ToString()); 
        int distanciaWebService = Int32.Parse(Application.Current.Properties["gps_distancia"].ToString()); 


        await CrossGeolocator.Current.StartListeningAsync(TimeSpan.FromSeconds(tempoWebService), distanciaWebService, true, new Plugin.Geolocator.Abstractions.ListenerSettings
        {
            ActivityType = Plugin.Geolocator.Abstractions.ActivityType.AutomotiveNavigation,
            AllowBackgroundUpdates = true,
            DeferLocationUpdates = true,
            DeferralDistanceMeters = 1,
            DeferralTime = TimeSpan.FromSeconds(1),
            ListenForSignificantChanges = true,
            PauseLocationUpdatesAutomatically = false
        });