当没有连接蓝牙设备不再可用时,IOS收到通知

时间:2013-06-09 15:33:05

标签: iphone ios core-bluetooth bluetooth-lowenergy

我知道如何使用与其回调scanForPeripheralsWithServices一起使用的didDiscoverPeripheral来接收新的可用外设通知,以填充UITableView列表。

但是,当未连接蓝牙设备不再可用时,如何接收通知?

/****************************************************************************/
/*                              Discovery                                   */
/****************************************************************************/
- (void) startScanningForUUIDString:(NSString *)uuidString
{
    NSArray         *uuidArray  = [NSArray arrayWithObjects:[CBUUID UUIDWithString:uuidString], nil];
    NSDictionary    *options    = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:NO] forKey:CBCentralManagerScanOptionAllowDuplicatesKey];

    [centralManager scanForPeripheralsWithServices:uuidArray options:options];
}

- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI
{
    if (![foundPeripherals containsObject:peripheral]) {
        [foundPeripherals addObject:peripheral];
        [discoveryDelegate discoveryDidRefresh];
    }
}

1 个答案:

答案 0 :(得分:3)

我认为您想知道的原因是因为您想刷新foundPeripherals数组并更新UI正确吗?好吧,因为你没有与设备的当前联系,所以无法知道设备何时移开或靠近。您的解决方案是这样的:启动一个NSTimer,清除您的foundPeripherals并在它发生时再次开始发现。如果您在新发现中看到它,它仍然存在,您应该重新添加到foundPeripherals。否则它就消失了。