2015-01-16 128 views
1

我在讀「Performing Common Central Role Tasks",它有關於如何發現外圍設備和如何連接到外設的信息,但我似乎無法找到如何檢查用戶是否選擇取消或配對彈出,因爲在彈出來的時候我打電話[myCentralManager connectPeripheral:peripheral options:nil];。我想連接(或斷開連接)外圍,如果用戶點擊了對彈出取消。我可以調用配對彈出一些其他的方式?用戶許可配對藍牙設備

+0

除非您的外設正在啓動連接上的配對,否則在嘗試讀取/寫入需要加密的特性之前,您不應該獲得配對彈出窗口。 – Paulw11

回答

5

的配對過程通過嘗試讀取/寫入/通知需要加密的特徵來啓動

如果配對過程comp然後採用適當的方法(例如, didUpdateValueForCharacteristic:)將被調用一個零錯誤。

如果配對過程失敗或被取消,則將使用NSError對象調用CBPeripheralDelegate方法,該對象指示'加密不足' - CBATTErrorInsufficientEncryption

如果您得到的加密錯誤不足,您可以從外設斷開連接或重試操作,該操作將再次顯示配對對話框。如果用戶輸入PIN碼時出現錯誤,我建議您重試幾次,如3。

+0

我已經使用了你的建議,並在'didUpdateValueForCharacteristic'中做了這個: '如果(error.domain == CBATTErrorDomain && error.code == 5){[managerCentral cancelPeripheralConnection:peripheral];}' 我想這是正確的方法去? – Spire