0

iOS アプリ (ペリフェラル) から OSX アプリ (中央) にメッセージを送信することに成功しました。

セントラルで特性値を更新してペリフェラルから読み取ろうとすると、問題が発生します。

CBCharacteristicProperties を Notify 以外に変更すると、セントラルは「書き込みは許可されていません」というエラーでキャラクタリスティックへのサブスクライブに失敗します。

self.transferCharacteristic = CBMutableCharacteristic(type: CBUUID.UUIDWithString(TRANSFER_CHARACTERISTIC_UUID), properties: CBCharacteristicProperties.Read, value: nil, permissions: CBAttributePermissions.Writeable)

私の理解では、Central から Peripheral への書き込みを行うには、Peripheral で上記の行とこのイベントを組み合わせて使用​​する必要があります。

func peripheralManager(peripheral: CBPeripheralManager!, didReceiveWriteRequests requests: [AnyObject]!) {}

これを Central で使用して、特性の値を更新します。

self.discoveredPeripheral?.writeValue(passwordData, forCharacteristic: self.characteristicSubscribed, type: CBCharacteristicWriteType.WithoutResponse)

私が間違っていることを教えてください。私がやろうとしていることを行う方法を示すサンプルプロジェクトは、高く評価されます。

ありがとう

4

1 に答える 1

1

列挙値を組み合わせて、読み取り可能と書き込み可能の両方としてプロパティにフラグを立てる必要があります-

var cbProperties = CBCharacteristicProperties.Read|CBCharacteristicProperties.Write
var cbPermissions = CBAttributePermissions.Readable|CBAttributePermissions.Writeable

var transferCharacteristic = CBMutableCharacteristic(type: CBUUID.UUIDWithString(TRANSFER_CHARACTERISTIC_UUID), properties: cbProperties, value: nil, permissions: cbPermissions)
于 2014-09-02T05:36:04.780 に答える