首页 > 解决方案 > BLE WroteCharacteristicValue 从不调用

问题描述

我正在用 Xamarin.iOS 编写一个 iOS 应用程序,但也可以在本机 iOS 中给出答案。我的应用程序使用 BLE 写入特性在设备之间发送消息。我创建服务并将其添加到 CBPeripheralManager 的代码:

_cbPeripheralManager.WriteRequestsReceived += WriteRequestReceived; // WriteRequestReceived is never called

// my read characteristic actually works fine
_readCharacteristic = new CBMutableCharacteristic(CBUUID.FromString(MyReadCharacteristicUuid), CBCharacteristicProperties.Read | CBCharacteristicProperties.Notify, null, CBAttributePermissions.Readable);

// but my write characteristic doesn't work when i try to write to it
_writeCharacteristic = new CBMutableCharacteristic(CBUUID.FromString(MyWriteCharacteristicUuid), CBCharacteristicProperties.Write | CBCharacteristicProperties.Notify, null, CBAttributePermissions.Writeable);

_service = new CBMutableService(CBUUID.FromString(MyServiceUuid), true);
_service.Characteristics = new CBCharacteristic[2] { _readCharacteristic, _writeCharacteristic };

_cbPeripheralManager.AddService(_service);

以及我写入外围设备特征的代码(为简单起见,未显示设备和服务/特征发现的代码)

peripheral.WroteCharacteristicValue += handler; // handler is never called
peripheral.WriteValue(NSData.FromString("hello"), characteristic, CBCharacteristicWriteType.WithoutResponse);

知道问题可能是什么吗?

标签: iosxamarin.iosbluetooth-lowenergy

解决方案


推荐阅读