相关疑难解决方法(0)

有没有办法更快地发现BLE外围服务?

我发现我在iOS7中实现的BLE协议在启动阶段非常慢.启动顺序相当于我应用程序整个执行时间的68%.

我该怎么做才能让它更快?

我定时了,这就是我得到的.

     t     dt   
37.598          [BLE] Discovered peripheral at RSSI -27 with UUID:XYZ
37.599  0.001   [BLE] Connecting to peripheral                                                                            
37.602  0.003   [BLE] Scanning stopped                                                                                           
37.685  0.083   [BLE] Peripheral connected                                                                                
38.48   0.795   [BLE] Discovered service  
38.599  0.119   [BLE] Discovered characteristic    
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,在发现这项服务之前,有一个巨大的瓶颈.

我的启动代码简化了:

- (void)centralManagerDidUpdateState:(CBCentralManager *)central {
    switch (central.state) {
        case CBCentralManagerStatePoweredOn:
            [central scanForPeripheralsWithServices:@[[CBUUID UUIDWithString:kServiceUuid]]
                                            options:@{CBCentralManagerScanOptionAllowDuplicatesKey : @YES}];
            break;
        case CBCentralManagerStatePoweredOff:
            [central stopScan];
            break;
        default:
            break;
    }
}

- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI {
    if (self.discoveredPeripheral != …
Run Code Online (Sandbox Code Playgroud)

objective-c bluetooth-lowenergy ios7

5
推荐指数
1
解决办法
4217
查看次数

标签 统计

bluetooth-lowenergy ×1

ios7 ×1

objective-c ×1