使用CoreBluetooth检测AltBeacon

时间:2015-05-27 09:56:43

标签: swift ibeacon altbeacon

我想通过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不匹配:(

1 个答案:

答案 0 :(得分:0)

我可以回答你问题的一部分:CBCentralManager的委托方法(例如func centralManagerDidUpdateState(central: CBCentralManager!))仅在你用队列实例化管理器时调用,即使用{{1 }或init(delegate:queue:)而非init(delegate:queue:options:) ...

相关问题