Frage

Ich muss ein Bluetooth-Gerät über virtuellen COM-Port in Windows erstellt verbinden. Es ist einfach, wenn der Port bereits während der manuellen Pairing erstellt. Aber ich würde meine Bewerbung gerne einen Benutzer aus dem manuellen Pairing eines Geräts zu entlasten. Ich möchte alle Geräte in dem Bereich präsentieren, damit einen Benutzer, zu wählen, und dann virtuell COM-Port mit dem ausgewählten Gerät verbunden erstellen. Ich versuche nicht, den Kopplungsvorgang selbst, um zu verhindern, sondern würde Ich mag es, durch meine Anwendung aufzurufen.

Ich begann die Vertrautheit mit Microsoft Bluetooth API . Und dann erhob sich einige Zweifel. Ich habe mich gefragt, was passiert, wenn einige Benutzer verschiedene verwenden würde (als Microsoft) Bluetooth-Stack? Ist die Microsoft-API der reale Bluetooth-API, die von einem anderen Bluetooth-Stack-Provider implementiert werden? Oder vielmehr jeder Anbieter hat seine eigene API und die Microsoft ist nur eine von vielen anderen?

War es hilfreich?

Lösung

Danke an alle für einen wertvollen Beitrag. Ich möchte zusammenfassen, was ich bisher gefunden habe. Das Microsoft Bluetooth API funktioniert nicht System-API. Anwendung geschrieben dagegen wird nicht korrekt mit einem anderen Bluetooth-Stack . Es scheint, dass Anwendungen, die mit mehreren Stapeln zusammenarbeiten sollen müssen einige Stapel Abstraktionsschicht zur Verfügung zu stellen, und stapeln spezifischen Code für all Car-sharing anderen Lösung ist benutzer für die manuelle Pairing des Bluetooth-Geräts zu ermöglichen, die schließlich eine virtuelle Gerät erstellen in dem Betriebssystem (zB COM-Port). Dann kann die Anwendung verwenden Standardschnittstelle eines solchen Geräts.

Andere Tipps

Ich kann für den Microsoft Bluetooth-API nicht sprechen, aber es gibt mehrere Bluetooth-Stacks für die PC-Plattform (noch mehr für mobile Geräte).

Die zugrunde liegende API durch die Bluetooth Core-Spec und so sollten alle Stapel der Lage sein, zu interagieren, in der Tat ist es zwingend notwendig, dass sie Interop oder sie nicht den Bluetooth-Namen und das logo verwenden können.

Wie zu Paarung, Ihr geht eine harte Zeit haben Geräte immer zu koppeln, wenn sie Standardsicherheits haben, die einen PIN-Code erforderlich ist.

Einige Dinge könnten einfacher sein in (nahen) Zukunft, da der Bluetooth-Standard ein neues Sicherheitsmodell eingeführt,

Wenn Sie .NET zu verwenden ändern können: - / Ich kann unsere Bibliothek 32feet.NET empfehlen. Für explizite Paarung gibt es BluetoothSecurity.PairDevice. Wir können auch die virtuellen Port für Sie, zum Beispiel erstellen:

   BluetoothClient cli = new BluetoothClient();
   BluetoothDeviceInfo[] list = cli.DiscoverDevices();
   BluetoothDeviceInfo selected = GetUserToSelectOne(list);
   BluetoothSecurity.PairDevice(selected, pin);
   // Ask Win32 to create a virtual serial port
   selected.SetServiceState(BluetoothService.SerialPort);

Allerdings mag ich serielle Ports nicht virtuelle, so schlage ich vor, immer, dass die Menschen eine normale Steckdosen-Verbindung mit unserer BluetoothClient-Klasse verwenden, wird es automatisch Pairing-Anfragen behandeln, falls erforderlich.

Auf Win32 unterstützen wir die Stapel von Microsoft, Widcomm / Broadcom und Bluesoleil. Auf Widcomm gibt es keine Unterstützung für SetServiceState es noch, und ihre API hat keine Unterstützung für Pairing reagiert Anfragen . Bluesoleil sollten beide unterstützen.

Eine kurze Bedienungsanleitung ist unter 32feet.NET - Benutzerhandbuch und alle Klassendokumentation ist am Hauptstandort http://32feet.net ist die Widcomm Dokumentation nur in unserer Code-Repository im Moment.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top