我想用altBeacon和Swift检测altBeacon(通过安卓智能手机与QuickBeacon应用程序传输)。
但是,当我搜索特定的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“时,它也不起作用。有人知道我怎样才能用AltBeacon和iBeacon标准得到coreBluetooth的广告价值吗?
更新:
当我搜索所有外围设备时,我从我的AltBeacon获得以下信息:
在DidDiscoverPeripheral AdvertisementData: kCBAdvDataIsConnectable: 0 RSSI:-47外设名称: nil,State:(Enum Value),服务:nil,RSSI:nil,ID:<__NSConcreteUUID 0x17002edc0> A91CBF8C-DA69-B2FB-1A9A-CDDB60A48209,描述:
但是UUID与给定的ID不匹配:(
发布于 2015-05-27 11:20:15
我可以回答您问题的一部分:只有当您使用队列实例化管理器时才调用CBCentralManager的委托方法(例如func centralManagerDidUpdateState(central: CBCentralManager!)),即使用init(delegate:queue:)或init(delegate:queue:options:)而不是只使用init().
https://stackoverflow.com/questions/30479071
复制相似问题