我使用此插件https://github.com/xabre/xamarin-bluetooth-le
现在,我正在尝试编写特征并从BLE设备获得响应。 将命令发送到BLE设备后,我想使用feature.ValueUpdated获得响应。 但是我的代码不起作用。因此,我想知道如何使用feature.ValueUpdated和Characteristics.StartUpdatesAsync()。
复制步骤
预期的行为: 事件特性.ValueUpdated应该被调用,我可以获得响应。
实际行为: 特性。不调用ValueUpdated。
配置: **插件版本:2.0.0-pre1 **平台:iOS 12.1 / Android 7.1 **设备:iPhone XR /华硕Android
public int SendCommand(byte[] command)
{
if (device == null || service == null || characteristic == null)
{
return 1;
}
var result1 = WriteCharacteristic(command);
receive_data = GetResponse().Result;
if (receive_data == null || receive_data[1] != 0x00)
{
return 1;
}
return 0;
}
private async Task<bool> WriteCharacteristic(byte[] command)
{
await characteristic.WriteAsync(command);
return true;
}
private async Task<byte[]> GetResponse()
{
byte[] bytes = new byte[20];
characteristic.ValueUpdated += (o, args) =>
{
bytes = args.Characteristic.Value;
};
await characteristic.StartUpdatesAsync();
return bytes;
}