Добрый день!
Следуя этому туториалу http://doc.qt.io/qt-5/qtbluetooth-btchat-example.html, я запустил bluetooth-сервер.
Однако, когда я пытаюсь найти его с iPhone 5s приложением для поиска ble-устройств, компьютер находит, но не видит сервис "Bt Chat Server".
qWarning() << "Starting bluetooth server!";
QBluetoothLocalDevice localDevice;
QBluetoothAddress adapterAddress = localDevice.address();
qWarning() << adapterAddress;
rfcommServer = new QBluetoothServer(QBluetoothServiceInfo::RfcommProtocol, this);
connect(rfcommServer, SIGNAL(newConnection()), this, SLOT(clientConnected()));
bool result = rfcommServer->listen(adapterAddress);
if (!result) {
qWarning() << "Cannot bind chat server to " << adapterAddress.toString();
return;
}
qWarning() << "Bluetooth server started!";
serviceInfo.setAttribute(QBluetoothServiceInfo::ServiceName, tr("Bt Chat Server"));
serviceInfo.setAttribute(QBluetoothServiceInfo::ServiceDescription,
tr("Example bluetooth chat server"));
serviceInfo.setAttribute(QBluetoothServiceInfo::ServiceProvider, tr("qt-project.org"));
static const QLatin1String serviceUuid("e8e10f95-1a70-4b27-9ccf-02010264e9c8");
serviceInfo.setServiceUuid(QBluetoothUuid(serviceUuid));
QBluetoothServiceInfo::Sequence publicBrowse;
publicBrowse << QVariant::fromValue(QBluetoothUuid(QBluetoothUuid::PublicBrowseGroup));
serviceInfo.setAttribute(QBluetoothServiceInfo::BrowseGroupList, publicBrowse);
QBluetoothServiceInfo::Sequence protocolDescriptorList;
QBluetoothServiceInfo::Sequence protocol;
protocol << QVariant::fromValue(QBluetoothUuid(QBluetoothUuid::L2cap));
protocolDescriptorList.append(QVariant::fromValue(protocol));
protocol.clear();
protocol << QVariant::fromValue(QBluetoothUuid(QBluetoothUuid::Rfcomm))
<< QVariant::fromValue(quint8(rfcommServer->serverPort()));
protocolDescriptorList.append(QVariant::fromValue(protocol));
serviceInfo.setAttribute(QBluetoothServiceInfo::ProtocolDescriptorList,
protocolDescriptorList);
serviceInfo.registerService(adapterAddress);
Вот что выдает в консоли:
Starting bluetooth server!
"28:CF:E9:1F:2C:D8"
Bluetooth server started!
Как видите, адрес адаптера находит, значит проблема не в устройстве.
Запускалось это в виртуалке Ubuntu 14.04.
Пробовал также собрать Qt 5.5 и запустить из под Mac OS X. Тот же самый результат.