我有一个工作系统,可以在后台进行外围扫描。重构代码后,此功能已停止工作。
我以为我只是错过了一些东西,但是奇怪的是,如果我同时运行两个版本的应用程序(重构之前/之后)(使用不同的包ID),则重构版本可以使用。有谁知道这可能是什么原因?
相关部分:
func centralManagerDidUpdateState(_ central: CBCentralManager) {
print("did update central manager")
if central.state == .poweredOn {
print("powered on central manager")
let scanOptions = [CBCentralManagerScanOptionAllowDuplicatesKey: true]
central.scanForPeripherals(withServices: [CBUUID(nsuuid: UUID.init(uuidString: "05D27C93-F0FE-43BB-A8CB-DECFED270F8F")!)], options: scanOptions)
}
}
func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
print(RSSI)
DataCollector.logBluetoothData(advertisementData, RSSI)
let uuid = BluetoothModel.extractUUID(advertisementData)
bluetoothReading[uuid] = (Date().timeIntervalSince1970, Double(truncating: RSSI))
}
我觉得这可能与用户授予在后台进行监听的权限到开始监听之间的时间有关,但是基于以前的版本,我认为情况并非如此的方式。
答案 0 :(得分:0)
问题已解决。事实证明,如果您还适用于iBeacon设备,则可以继续对其进行监视。