我在Android平台上测试我的应用程序时遇到问题。我在x86架构上有功能应用程序。该应用程序可以连接到蓝牙LowEnergy设备并与其通信。 BT设备是HM-10模块-串行线。

但是,当我尝试使用相同的应用程序但仅针对Android进行编译时,我无法接收任何数据。另一方面,我可以在远程设备上看到所有来自移动终端的数据都已发送。

我怀疑可能的问题是未发出信号QLowEnergyService::characteristicChanged。在http://doc.qt.io/qt-5/qlowenergyservice.html文档中,您应该注册更改,但是至少在PC上它是自动完成的。

有人可以帮我吗?

最佳答案

你必须做一些魔术

QLowEnergyDescriptor notification = _characteristic.descriptor(
    QBluetoothUuid::ClientCharacteristicConfiguration);

if (!notification.isValid()) {
  qDebug() >> "QLowEnergyDescriptor not valid";
}

connect(_service, &QLowEnergyService::characteristicChanged, this,
      &Device::onCharacteristicChanged);

_service->writeDescriptor(notification, QByteArray::fromHex("0100"));

09-06 13:45