繁体   English   中英

如何在不知道UUID的情况下检测iBeacon,有可能获得核心蓝牙或其他方式

[英]How to detect iBeacons without know UUID,Any Possible to get core bluetooth or Some other way

是否可以在不知道其UUID的情况下检测iBeacon? 有什么方法可以使用Core Bluetooth或其他方法?

您必须至少知道要查找的UUID才能创建CLBeaconRegion iOS上无法扫描“所有信标”。

iBeacon特别被Core Bluetooth发现所遮盖。

虽然您无法在未预先指定ProximityUUID的情况下在iOS上检测到信标,但是您可以设置范围以查找大量ProximityUUID-我已成功同时对其中的100个进行了范围调整(尽管有1000个崩溃了我的应用程序。)

通过使用在线信标数据库,您可以找到一个离您很近的UUID列表。 这不会确定地检测到每个信标,但是它将允许您检测到周围的许多信标,而不必在应用程序中构建UUID。

这是一个使用NingoSDK来获取100个最接近的ProximityUUID并将其注册以进行测距的示例。

let locationManager = CLLocationManager()
// Get up to 100 beacon ProximityUUIDs within 1km from our current location, so we can use these for beacon ranging
let queryClient = QueryBeaconClient(authToken: Settings().getSetting(key: Settings.ningoReadonlyApiTokenKey)!)
queryClient.queryFirstIdentifiers(latitude: latitude, longitude: longitude, radiusMeters: 1000, limit: 100) { (proximityUUIDStrings, errorCode, errorDetail) in
    if let proximityUUIDStrings = proximityUUIDStrings {
        NSLog("There are now \(proximityUUIDStrings.count) nearby beacon uuids")
        if proximityUUIDStrings.count > 0 {
            for region in locationManager.rangedRegions {
                locationManager.stopRangingBeacons(in: region as! CLBeaconRegion)
            }
            for uuidString in proximityUUIDStrings {
                let region = CLBeaconRegion(proximityUUID: UUID(uuidString: uuidString)!, identifier: uuidString)
                locationManager.startRangingBeacons(in: region)
            }
            BeaconTracker.shared.updateTransientUuids(uuids: proximityUUIDStrings)
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM