我在我的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();
谢谢
答案 0 :(得分:0)
我今天面临的问题是,无论何时发生位置事件,我都无法完全利用ALWAYS权限来在后台恢复我的应用程序(该应用程序已被杀死)。
如果APP已终止,则 AllowsBackgroundLocationUpdates 将不起作用。您应该确保应用程序不会被首先杀死。
allowsBackgroundLocationUpdates:一个布尔值,指示应用在暂停状态下是否应接收位置更新。(未终止状态)。