我想找到蓝牙设备并使用一定时间获取RSSI值。我可以扫描iBeacons。但我也想找到其他蓝牙设备(例如iPhone设备)。如何使用CoreLocation扫描所有设备?
func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
if status == .authorizedAlways {
if CLLocationManager.isMonitoringAvailable(for: CLBeaconRegion.self) {
if CLLocationManager.isRangingAvailable() {
startScanning()
}
}
}
}
func startScanning() {
let uuid = UUID(uuidString: "XXXXX")!
let beaconRegion = CLBeaconRegion(proximityUUID: uuid, major: 0, minor: 0, identifier: "XXXXX")
locationManager.startMonitoring(for: beaconRegion)
locationManager.startRangingBeacons(in: beaconRegion)
}
func locationManager(_ manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], in region: CLBeaconRegion) {
extendBackgroundRunningTime()
if beacons.count > 0 {
print(beacons)
updateDistance(beacons[0].proximity)
} else {
updateDistance(.unknown)
}
}
您无法使用此方法扫描蓝牙设备。您只能扫描具有Core Bluetooth Frame功能的蓝牙设备。通过下面的蓝牙教程。Press here for link