Xamarin Forms iOS位置许可(始终允许)

时间:2019-06-20 15:05:28

标签: xamarin.forms xamarin.ios

我在我的iOS Xamarin Forms应用程序中使用(始终允许)位置权限。我今天面临的问题是,无论何时发生位置事件,我都无法完全利用ALWAYS权限在后台将我的应用程序(已被杀死)带回后台。有什么解决办法吗?

我的代码:

lm = new CLLocationManager
           {
               PausesLocationUpdatesAutomatically = false,
               DesiredAccuracy=CLLocation.AccuracyBest,
               DistanceFilter=0,
               AllowsBackgroundLocationUpdates = true
           };


           lm.LocationsUpdated +=
               (object sender, CLLocationsUpdatedEventArgs e) => {
                   var locations = e.Locations; 
                   LocationEventArgs args = new LocationEventArgs();
                   args.lat = locations[locations.Length - 1].Coordinate.Latitude;
                   args.lng = locations[locations.Length - 1].Coordinate.Longitude;
                   locationObtained(this, args);  //Log
               };
           lm.AuthorizationChanged += (object sender,
               CLAuthorizationChangedEventArgs e) => {
                   if (e.Status == CLAuthorizationStatus.Authorized)
                   {
                       //lm.StartMonitoringSignificantLocationChanges();
                       lm.StartUpdatingLocation();
                   }
               };
           lm.RequestAlwaysAuthorization();

谢谢

1 个答案:

答案 0 :(得分:0)

  

我今天面临的问题是,无论何时发生位置事件,我都无法完全利用ALWAYS权限来在后台恢复我的应用程序(该应用程序已被杀死)。

如果APP已终止,则 AllowsBackgroundLocationUpdates 将不起作用。您应该确保应用程序不会被首先杀死。

allowsBackgroundLocationUpdates:一个布尔值,指示应用在暂停状态下是否应接收位置更新。(未终止状态)。