我一直在尝试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();
}
如何宣传自定义服务和特征?任何帮助表示赞赏。
答案 0 :(得分:0)
我解决了这个问题,iPhone正在为外围设备缓存蓝牙数据,这就是为什么它总是发现相同的服务和特性。在iPhone上重新打开和关闭蓝牙可解决此问题。希望这可以帮助遇到相同问题的人。