Gibt es bei mehreren Bluetooth-Adaptern die Möglichkeit, anzugeben, welcher lokale Adapter verwendet werden soll, wenn QBluetoothSocket
erstellt oder QBluetoothSocket::connectToService()
aufgerufen wird? Ich interessiere mich für Linux/BlueZ sowie Android (wo es noch nicht einmal klar ist, ob mehrere Bluetooth-Adapter vom Bluetooth-Stack unterstützt werden).So wählen Sie einen lokalen Adapter beim Herstellen einer Verbindung mit QBluetoothSocket
0
A
Antwort
0
Ab Qt 5.6.2, gibt es keine solche Funktionalität noch abgesehen von QBluetoothLocalDevice(QBluetoothAddress)
, QBluetoothDeviceDiscoveryAgent(QBluetoothAddress)
, QBluetoothServiceDiscoveryAgent(QBluetoothAddress)
und QBluetoothServer::listen(QBluetoothAddress)
. Diese wären nur unter Linux und nicht unter Android sinnvoll, da der Android-Bluetooth-Stack zumindest noch nicht mehrere Dongles zu unterstützen scheint.
jedoch auf Linux mit BlueZ, ist Folgendes möglich den lokalen Adapter mit der BlueZ c API zur Auswahl:
#include <sys/socket.h>
#include <bluetooth/bluetooth.h>
#include <bluetooth/rfcomm.h>
...
QBluetoothSocket* socket = new QBluetoothSocket(QBluetoothServiceInfo::RfcommProtocol);
struct sockaddr_rc loc_addr;
loc_addr.rc_family = AF_BLUETOOTH;
int socketDescriptor = ::socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);
if(socketDescriptor < 0){
qCritical() << strerror(errno);
return;
}
const char* localMacAddr = "XX:XX:XX:XX:XX:XX"; //MAC address of the local adapter
str2ba(localMacAddr, &(loc_addr.rc_bdaddr));
if(bind(socketDescriptor, (struct sockaddr*)&loc_addr, sizeof(loc_addr)) < 0){
qCritical() << strerror(errno);
return;
}
if(!socket->setSocketDescriptor(socketDescriptor, QBluetoothServiceInfo::RfcommProtocol, QBluetoothSocket::UnconnectedState)){
qCritical() << "Couldn't set socketDescriptor";
return;
}
socket->connectToService(...);
Das Projekt .pro
muss Folgendes enthalten:
CONFIG += link_pkgconfig
PKGCONFIG += bluez
Die entsprechenden Feature-Anforderung, um dies möglicherweise in die Qt-APIs zu integrieren: https://bugreports.qt.io/browse/QTBUG-57382
Verwandte Themen
- 1. Fehler beim Herstellen einer Verbindung mit localhost
- 2. SocketTimeoutException beim Herstellen einer Verbindung zur lokalen Datenbank
- 3. 500 Fehler: Fehler beim Herstellen einer Rückseitenverbindung auf bluemix beim Herstellen einer Verbindung mit Exchange-Webdiensten
- 4. Nullreferenzausnahme beim Herstellen einer Verbindung mit einer Datenbank
- 5. Herstellen einer Verbindung mit MS Access
- 6. Authentifizierungsfehler beim Herstellen einer Verbindung mit der Heroku PostgreSQL-Datenbank
- 7. Problem mit Mail-Flood beim Herstellen einer Verbindung zur Datenbank
- 8. Verbindung mit einem lokalen LDAP-Server über MVC herstellen 5
- 9. Ausnahme beim Herstellen einer Verbindung mit Azure EventHub
- 10. Fehler beim Herstellen einer Verbindung mit Oracle von Visual Studio
- 11. Fehler beim Herstellen einer Verbindung mit remote mongodb-Server
- 12. Herstellen einer Verbindung mit einer benutzerdefinierten lokalen Site mit einem benutzerdefinierten Namen
- 13. Fehler beim Herstellen einer Verbindung zu Oracle DSN mit Java
- 14. Verzögerung beim Herstellen einer Verbindung zur SQL Server-Instanz?
- 15. Herstellen einer Verbindung mit Teradata mit Python
- 16. Android - Fehler beim Herstellen einer Verbindung mit Google Play-Dienst
- 17. So stellen Sie eine Verbindung zur lokalen Datenbank her
- 18. Fehler beim Herstellen einer Verbindung zur lokalen MySQL-Instanz von Google App Engine Java.
- 19. JDBC Thin Adapter konnte keine Verbindung zu Spitzenzeiten herstellen
- 20. Wie erhalten Sie lat lange Informationen mit navigator.geolocation beim Herstellen einer Verbindung zu 192.168.x.x
- 21. Herstellen einer Verbindung mit Kerberos-Authentifizierung
- 22. UWP kann keine Verbindung zum lokalen Socket.IO-Server herstellen
- 23. Herstellen einer Verbindung mit Oracle von F #
- 24. Herstellen einer Verbindung mit SQL Azure
- 25. Android stürzt beim Herstellen einer Verbindung zum WLAN-Netzwerk ab
- 26. So wählen Sie einen bestimmten Artikel aus einer benutzerdefinierten Listenansicht
- 27. Herstellen einer Verbindung mit einer lokalen SQL-Datenbank von Azure WebJob
- 28. Verbindungszeichenfolge zum Herstellen einer Verbindung mit einer lokalen SQL Server-Datenbank mithilfe der Windows-Authentifizierung
- 29. So fügen Sie einen benutzerdefinierten Adapter zu einer AutoCompleteTextView hinzu
- 30. So fangen Sie ein "Ich kann keine sichere Verbindung herstellen"