0
我已成功設法讓我的iOS應用(外設)向我的OSX應用(中央)發送消息。更新來自CBCentral的特徵值
我現在遇到問題,試圖讓中央更新特徵值並從外設讀取它。
如果我將CBCharacteristicProperties更改爲Notify以外的任何其他內容,我的中央服務器無法訂閱具有以下錯誤的特徵:「不允許寫入」。在
func peripheralManager(peripheral: CBPeripheralManager!, didReceiveWriteRequests requests: [AnyObject]!) {}
這:
self.transferCharacteristic = CBMutableCharacteristic(type: CBUUID.UUIDWithString(TRANSFER_CHARACTERISTIC_UUID), properties: CBCharacteristicProperties.Read, value: nil, permissions: CBAttributePermissions.Writeable)
據我瞭解,纔能有中央寫入外設,我應該用線的組合在上面的外圍,與此事件中央更新特徵值:
self.discoveredPeripheral?.writeValue(passwordData, forCharacteristic: self.characteristicSubscribed, type: CBCharacteristicWriteType.WithoutResponse)
請讓我知道我做錯了什麼。任何示範項目展示如何做我想要的東西將不勝感激。
感謝
兩個問題請。 1-使用這種特性時,我是否還必須使用: peripheral.setNotifyValue(true,forCharacteristic:特徵爲CBCharacteristic) 如果是這樣,我仍然在「寫入不被允許」。 2 - 如何在中央調用self.discoveredPeripheral?.writeValue之後處理外設端數據? 謝謝 – 2014-09-02 22:52:47
如果你想通知,那麼你需要添加'CBCharacteristicProperties.Notify'屬性。在外設方面,您需要輪詢特徵值或(更好地)使用通知來通知該值已更改。 – Paulw11 2014-09-02 22:58:35
得到它的工作我不得不使用專用的UUID來處理這個特性,因爲它與我以前使用過的另一個衝突,他們似乎需要很長時間才能「走開」。 非常感謝! – 2014-09-02 23:05:24