我想通过CoreBluetooth和Swift检测altBeacon(由带有QuickBeacon App的Android智能手机发送)。
但是当我搜索特定的UUID时,没有调用委托方法。
func centralManagerDidUpdateState(central: CBCentralManager!){
if (central.state == .PoweredOff) {
println("CoreBluetooth BLE hardware is powered off")
}
else if (central.state == .PoweredOn) {
var UUIDObj:NSArray! = [CBUUID(string: "2f234454-cf6d-4a0f-adf2-f4911ba9ffa6")]
self.centralManager.scanForPeripheralsWithServices(UUIDObj as [AnyObject], options: nil)
NSLog("Scanning started"); }}
通常应该调用此方法
func centralManager(central: CBCentralManager!, didDiscoverPeripheral peripheral: CBPeripheral!, advertisementData: [NSObject : AnyObject]!, RSSI: NSNumber!) {
当我将信标格式更改为" iBeacon"它也不起作用。 有谁知道我如何通过coreBluetooth获得AltBeacon和iBeacon标准的广告价值?
更新
当我搜索所有外围设备时,我从AltBeacon获取此信息:
在DidDiscoverPeripheral中 AdvertisementData:[kCBAdvDataIsConnectable:0] RSSI:-47 外围名称:nil,状态:(枚举值),服务:nil,RSSI:nil,ID:< __ NSConcreteUUID 0x17002edc0> A91CBF8C-DA69-B2FB-1A9A-CDDB60A48209,描述:
但是UUID与给定ID不匹配:(
答案 0 :(得分:0)
我可以回答你问题的一部分:CBCentralManager
的委托方法(例如func centralManagerDidUpdateState(central: CBCentralManager!)
)仅在你用队列实例化管理器时调用,即使用{{1 }或init(delegate:queue:)
而非init(delegate:queue:options:)
...