2016-09-07 90 views
0

我的項目需要接收BLE廣告包,並且在不連接BLE設備的情況下處理kCBAdvDataManufacturerData.BLE設備每秒發送廣告包1次。在一個空視圖控制器中,我收到廣告打包每秒1次,但在我的控制器中顯示BLE廣告包數據時,我收到廣告包的頻率降低到1/4秒或更低。在此控制器中,我發送一些http請求並使用NSTimer 1更新UI每second.I時間處理kCBAdvDataManufacturerData在dispatch_sync(dispatch_get_global_queue(0,0),並且在mainqueue。 任何人更新UI有任何想法,以增加頻率來接收BLE廣告包?BLE廣告包得到頻率很低

回答

0

-1。首先你需要開始發現。

-(void)startDiscovery 
{ 
if (self.mBtmanager == nil) { 
    _mScanState = false; 
    self.mBtmanager = [[CBCentralManager alloc] initWithDelegate:self queue:nil]; 
    self.mBtmanager.delegate = self; 
}  
if (self.mBtmanager.state != CBCentralManagerStatePoweredOn) { 
    _mScanState = true; 
} 
    NSDictionary *scanOption = @{CBCentralManagerScanOptionAllowDuplicatesKey:@YES}; 
[self.mBtmanager scanForPeripheralsWithServices:[[NSArray alloc] initWithObjects:[CBUUID UUIDWithString:JAALEE_ADV_SERVICE_UUID_STRING], nil] options:scanOption]; 
} 

- 2.您需要連接到Beacon。

-(void)startConnectDevice:(CBPeripheral*)peripheral 
{ 
peripheral.delegate = self; 
[self.mBtmanager connectPeripheral:peripheral options:nil]; 
} 

-3。然後使用writeServicesUUID

[peripheral writeValue:value forCharacteristic:characteristic type:CBCharacteristicWriteWithResponse]; 

- 最後CONFIGURE_BROADCAST_INTERVAL_CHARACTERISTIC_將幫助你改變播放間隔。

+0

我解決了這個問題,無論如何感謝您的關注。 – HuangLW