在swift中使用xCode 7时,我只能在应用程序处于前台时才能在后台设置信标。
我的核心位置didRangeBeacons如下:
func locationManager(manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], inRegion region: CLBeaconRegion) {
let near = beacons[0]
print(near)
}
didFinishLaunchingWithOptions是随后的。位置管理器对象是该类的全局。
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
if(locationManager.respondsToSelector("requestAlwaysAuthorization")) {
locationManager.requestAlwaysAuthorization()
}
locationManager.delegate = self
locationManager.pausesLocationUpdatesAutomatically = false
locationManager.startMonitoringForRegion(region)
locationManager.startRangingBeaconsInRegion(region)
locationManager.startUpdatingLocation()
return true
}
在我的.plist文件中,我有NSLocationAlwaysUsageDescription设置,在功能方面,我有背景模式和位置更新,并使用蓝牙LE附件检查。
此外,我已将CoreLocation Framework添加到项目中。
非常感谢帮助或某些可能有用的网址。谢谢。
答案 0 :(得分:3)
我设法解决了这个问题。核心位置将 allowsBackgroundLocationUpdates 的默认值添加为no。您可以看到视频(https://developer.apple.com/videos/wwdc/2015/?id=714)。