iOS BLE 關於app連線已配對裝置的問題
之前在做專案的時候遇到這個問題,我的裝置是支援ANCS協議的,但是每次配對後系統就會自動和我的裝置連線,我無法搜尋到這個裝置,通過 retrieveConnectedPeripheralsWithServices:這方法可以找到已經被連線上的所有裝置,但是我想利用 connectPeripheral:options對找到的裝置進行連線,但是不成功,糾結了好久終於給我發現問題,在已經搜尋到系統已連線上的裝置後,不應該繼續走裝置搜尋的方法了,所以connectPeripheral:options對找到的裝置進行連線和scanForPeripheralsWithServices 應該是兩個分支,程式碼如下:
-(void)scanDevices:(blackscanPeriperalInfos)blackPeriperalInfos;
{
//zwl
//已經被系統或者其他APP連線上的裝置陣列
NSArray *arr = [self.CBcentralmagagerretrieveConnectedPeripheralsWithServices:@[[CBUUIDUUIDWithString:ServiceUUID]]];
if(arr.count>0)
{
for (CBPeripheral* peripheralin arr)
{
if
{
peripheral.delegate = self;
//manager 獲取到的Peripheral會自動釋放,要重新建立一個Peripheral物件等於獲取到的Peripheral,之前專案中有這個,寫部落格的時候少了這句,導致好多朋友反應這個方法實現不了,後邊一位朋友跟我聊得時候發現少了這句,現在補上
self.peripheral = peripheral;
[centralManagerconnectPeripheral
}
}
}
else
{
[self.CBcentralmagagerscanForPeripheralsWithServices:niloptions:nil];
}
}