Bluetooth - Service not discovered..
Hi,
I’m trying to connect to Bluetooth server running on my laptop with Qt_Bluetooth client on phone.
But my issue is, though the service published by server running on laptop, it is not discovered by “ Qt_Bluetooth client on phone “
And if I try to connect to server using the bluetooth address and port number, it works, I can establish the connection.
can you tell me why I’m not getting service discovered signal. Am I missing anything.
Here is the code.
- //-----------------------------------------------------------------------------------------------------------------------------
- #include "Bluetooth_Client.h"
- {
- ui.setupUi(this);
- socket = new QBluetoothSocket(QBluetoothSocket::RfcommSocket);
- qDebug() << "Create socket";
- DeviceDiscoveryAgent = new QBluetoothDeviceDiscoveryAgent(this);
- connect(DeviceDiscoveryAgent, SIGNAL(deviceDiscovered(const QBluetoothDeviceInfo&)),
- this, SLOT(deviceDiscovered(const QBluetoothDeviceInfo&)));
- connect(ui.pushButton, SIGNAL(clicked()),this,SLOT(ButtonClicked()));
- connect(socket,SIGNAL(connected()),this,SLOT(ConnectedToServer()));
- DeviceDiscoveryAgent->start();
- }
- void Bluetooth_Client::deviceDiscovered(const QBluetoothDeviceInfo& ServiceInfo)
- {
- qDebug() << "~Device discovered";
- ui.textEdit->append(ServiceInfo.address().toString());
- ui.textEdit->append("\nConnecting to Server....\n");
- ServiceDiscoveryAgent = new QBluetoothServiceDiscoveryAgent(this);
- connect(ServiceDiscoveryAgent,SIGNAL(serviceDiscovered(const QBluetoothServiceInfo &info)),this,SLOT(ServiceDiscovered(const QBluetoothServiceInfo &info)));
- ServiceDiscoveryAgent->start();
- //socket->connectToService(QBluetoothAddress("XX:XX:XX:XX:XX:XX"),1); // Connecting via bluetooth address works.
- }
- void Bluetooth_Client::ButtonClicked()--
- {
- qDebug() << "Button CLicked";
- }
- void Bluetooth_Client::ServiceDiscovered(const QBluetoothServiceInfo &info)
- {
- ui.textEdit->append("Service Discovered...");
- qDebug() << info.serviceName();
- qDebug() << info.device().name();
- qDebug() << info.serviceUuid().toString();
- qDebug() << info.serviceProvider();
- socket->connectToService(info);
- //QBluetoothAddress address(QString("70:F3:95:34:26:14"));
- //socket->connectToService(address,0);
- }
- void Bluetooth_Client::ConnectedToServer()
- {
- ui.textEdit->append("Connected to server...\n");
- ui.textEdit->append(socket->peerName()+"\n");
- --
- }
- Bluetooth_Client::~Bluetooth_Client()
- {
- }
- //---------------------------------------------------------------------------------------------------------------------------
Thanks in advance,
Regards,
Vijay.
Edit: please use @ tags around code sections; Andre
5 replies
I am having the same isuue on N950. If you try to use a service discovery agent and set a uuid on it to filter the service discovery only to the service you are trying to connect it will not find any service. If you set up the service discovery agent with your laptop’s bluetooth address and no service uuid filter it will correctly (finally!!!) find all the bluetooth services currently running on the laptop. If in the slot you try to qDebug() print each of the discovered service uuid it will be 0000000 etc. So this is clearly a BUG !!!! The workaround is to use the service info name or description to compare it with a string that you know matches your desired bt service name/description and use it to connect.
You must log in to post a reply. Not a member yet? Register here!


