如何使用BLE Qt框架发布自定义uuid?

时间:2019-05-20 11:59:59

标签: c++ qt bluetooth bluetooth-lowenergy

我一直在尝试Qt的示例项目“心率服务器”。我将其安装在Linux上,并且我的iPhone应用程序成功识别了心率外围设备,并连接到它,并收到有关心率值更改的通知。

现在,我想修改“心率”示例项目,以播发具有自定义特征的自定义服务。我为自定义服务和特征生成了两个128位UUID,但是当我更改代码以进行广告宣传时,我的iPhone应用程序始终会识别具有HeartRateMeasurement特征的HeartRate服务。

我什至尝试宣传没有服务的外围设备(下面的代码),而我的iPhone应用程序仍然识别出该外围设备正在宣传HeartRate服务,即使它不是。

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QLowEnergyAdvertisingData advertisingData;
    advertisingData.setDiscoverability(QLowEnergyAdvertisingData::DiscoverabilityGeneral);
    advertisingData.setIncludePowerLevel(true);
    advertisingData.setLocalName("000000-000000-00");

    QLowEnergyController *leController = QLowEnergyController::createPeripheral();
    leController->startAdvertising(QLowEnergyAdvertisingParameters(), advertisingData,
                                   advertisingData);

    return a.exec();
}

如何宣传自定义服务和特征?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

我解决了这个问题,iPhone正在为外围设备缓存蓝牙数据,这就是为什么它总是发现相同的服务和特性。在iPhone上重新打开和关闭蓝牙可解决此问题。希望这可以帮助遇到相同问题的人。