iBeacon 应该在 Swift 中需要蓝牙?

iBeacon should needs bluetooth in Swift?

我知道蓝牙功能是使用该功能所必需的。但是,即使我在当前项目中关闭蓝牙一段时间,下面的打印项目仍然在更新中。

func locationManager(_ manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], in region: CLBeaconRegion) {

        if beacons.count > 0 {

            print("if beacon detect " + String(beacons.count))

            majorArray.removeAll()

            for beacon in beacons {
                //                print("uuid: \(beacon.proximityUUID.uuidString) major: \(beacon.major) minor: \(beacon.minor)")


                let major = "\(beacon.major)"
                let num = (major as NSString).integerValue

                if !majorArray.contains(num){
                    majorArray.append(num)

                }

            }

        }else{

            print("no beacon result")

        }

    }

我要搜索我附近的设备,如果我这样做,它需要蓝牙。我不知道为什么我关闭蓝牙后会出现这种情况。

如果我通过测距扫描信标,它不需要蓝牙吗?

自 iOS11 起,在控制中心关闭蓝牙不会停止信标检测。(控制中心是您从屏幕底部。)这个菜单项并没有真正关闭蓝牙,它只会终止活动的蓝牙连接并阻止建立新的蓝牙连接。它不会阻止像信标这样的无连接蓝牙通信。

但是,如果您在“设置”->“蓝牙”->“关闭”中将其关闭,您将看到信标检测停止。