2014-02-06 17 views
1

我需要通過藍牙發送ASCII碼的第三方設備。 希望有可能用spp。在術語上我可能是錯的。我不太瞭解這個編程領域。didDiscoverPeripheral不叫

centralManagerDidUpdateState我掃描的外設:

CBUUID *cbuuidService = [CBUUID UUIDWithString:@"0x1101"]; 
NSArray *service = @[ cbuuidService ]; 
NSDictionary *options = @{ CBCentralManagerScanOptionAllowDuplicatesKey : @YES }; 
[central scanForPeripheralsWithServices:service options:options]; 

didDiscoverPeripheral從來沒有所謂。

我試圖掃描,而無需服務,它具有相同的效果。

我在做什麼錯?我需要什麼cbuuid以及我在哪裏可以找到它?感謝任何幫助。

+0

您是否設置了代表?你有沒有任何藍牙低功耗(而不是經典的藍牙,CBUUID的問題讓我想知道)設備找到? – Larme

+0

是的,我設置委託如此:m_centralManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];關於BLE,我使用iPad Air和MacBook Air成對。還沒有第三方設備。 – Sauvage

+0

只是我試圖讓兩個設備之間的連接,而我沒有一個原始設備。但它什麼也沒找到 – Sauvage

回答

1

你需要有一隻設備充當一箇中心(你做的),一個作爲外圍設備。因此,假設您使用MB Air作爲中央處理器,您需要在iPad上啓動CBPeripheralManager並讓它發佈並宣傳一項服務。那麼你應該能夠在你的MB上發現它。

我想最簡單的方法是獲得一個工作周(例如心臟率帶),這樣你就可以CBCentralManager的使用熟悉。然後你可以開始實施你自己的外設。

PS:我不知道它是正確的把0x在標識符的開始。

+0

謝謝,我的理解,因爲你的解釋 – Sauvage

+0

那麼藍牙鍵盤或另一個iphone,而不是心率帶? 因爲坦率地說,我無法發現任何外設。我甚至掃描所有的服務,但仍然沒有發現。 [central scanForPeripheralsWithServices:service options:options]; – iosMentalist

1

相信CoreBluetooth是很難使用。

而是與凌亂的框架使用LGBluetooth工作的(它炒菜了CoreBluetooth)。

 
    [[LGCentralManager sharedInstance] scanForPeripheralsByInterval:10 
                 completion:^(NSArray *peripherals) 
    { 
    }]; 

這裏是一個間隔掃描的例子。

檢查出來 https://github.com/l0gg3r/LGBluetooth