(Dis) Verbinden von Bluetooth-Geräten mit Windows.Devices.Bluetooth.Rfcomm (WP8.1)

82

Das Verbinden und Trennen von Bluetooth-Geräten hat unter Windows Phone / Desktop 8.1 zu verschiedenen Ergebnissen geführt. Ich habe den Windows.Devices.Bluetooth.RfcommNamespace verwendet und versucht, mehrere Geräte mit unterschiedlichen Bluetooth-Versionen / -Klassen zu verbinden.

  • Version 1.2 (Klasse 1 und 2)
  • Version 2.0 (Klasse 1 und 2)
  • Version 2.1 (Klasse 1 und 2)
  • Getestet auf Nokia Lumia 625 und Lumia 635, Dell Latitude E6500 und einem Dell Precision M6400.

Immer wenn ich versuche, eine Verbindung zu einem der 2.0- oder 2.1-Geräte herzustellen, treten Probleme auf. Wenn ich zum ersten Mal versuche, eine Verbindung zu jedem der Geräte herzustellen, funktioniert alles einwandfrei und die Verbindung wird geöffnet. Wenn ich anschließend die Verbindung schließe und das Gerät wieder anschließe, beginnt der Fehler. Während der erneuten Verbindung wird die Verbindung niemals geöffnet und der Debugger löst eine System.Exception aus:

> Message: No further data is available.

Wenn die Verbindung fehlschlägt, versuchen die Windows 8.1-Geräte weiterhin (erfolglos), selbst eine Verbindung zu den Bluetooth-Geräten herzustellen, selbst wenn meine eigene Anwendung beendet wird. Manchmal zeigt das Windows 8.1-Gerät auch das Bluetooth-Gerät als verbunden an, während das Gerät visuell anzeigt, dass es nicht mehr verbunden ist. Die einzige Möglichkeit, das Bluetooth-Gerät erneut zu verbinden, besteht darin, die Verbindung zu trennen und Bluetooth auf dem Windows-Gerät herunterzufahren / neu zu starten.

Wenn ich versuche, DeviceInformationnach einer fehlgeschlagenen Verbindung einen neuen Anruf zu tätigen , wird das Gerät, das ich zuvor versucht habe, zurückzugeben, nicht zurückgegeben.

> Message: The service cannot be found in the specified name space.

Seltsames Ergebnis, die 1.2-Geräte funktionieren einwandfrei.

Manifestdatei:

<m2:DeviceCapability Name="bluetooth.rfcomm">
  <m2:Device Id="any">
    <m2:Function Type="serviceId:00001101-0000-1000-8000-00805F9B34FB"/>
  </m2:Device>
</m2:DeviceCapability>

Gerät auswählen:

Guid RfcommChatServiceUuid = Guid.Parse("00001101-0000-1000-8000-00805F9B34FB");
await DeviceInformation.FindAllAsync(RfcommDeviceService.GetDeviceSelector(RfcommServiceId.FromUuid(RfcommChatServiceUuid)));

Verbindung herstellen: (id = chatserviceid)

StreamSocket _socket;    
RfcommDeviceService service = await RfcommDeviceService.FromIdAsync(deviceInformation1._id);
await _socket.ConnectAsync(service.ConnectionHostName, service.ConnectionServiceName);

Trennen:

this._socket.Dispose();
this._socket = null;

Ich habe die MSDN, Codebeispiele, Demos, Channel-9-Videos und StackOverflow recherchiert. Keine Ressource kann mir sagen, ob es Probleme mit gibt Windows.Devices.Bluetooth.Rfcomm.

Gibt es jemanden, der diese seltsamen Ergebnisse erkennt? Mache ich etwas falsch?

UPDATE: Die Arbeit mit Windows Phone 8.1 GDR2 ist eine mögliche Lösung.

HINWEIS: Für mich und mehrere andere Personen gibt dieses Update immer noch dieselben Probleme.

ggg
quelle
2
Hallo gl77 - Ich arbeite an diesem Problem in Ihrem MSDN-Konto. Ich habe den Thread aktualisiert und werde dich aktualisieren, wenn ich mehr weiß.
Matt Small
Haben Sie eine Lösung dafür gefunden? Ich habe ein ähnliches Problem, bei dem es auf einem Gerät funktioniert, aber nicht auf einem anderen. Ein Hinweis ist, dass auf dem funktionierenden Gerät der Bluetooth-Treiber von Intel ausgeführt wird: 17.0.1401.422, während auf dem Gerät, das nicht funktioniert, der Bluetooth-Treiber von Intel ausgeführt wird: 17.0.1405.460.
Jon H
Ich habe noch keine Lösung gefunden, Matts Team arbeitet noch an dem Problem. Hoffen wir auf eine Lösung in naher Zukunft.
ggg
2
Der Hardwarehersteller führte mich durch das Entfernen der Version 17.0.1405.460 der Intel Bluetooth-Treiber und die Installation der älteren Version 17.0.1401.422. Sobald wir das getan haben, begann meine Anwendung wieder zu funktionieren. Das Problem waren für mich also die neueren Treiber.
Jon H
1
Könnten Sie einen Link zum MSDN-Beitrag anhängen?
Still

Antworten:

1

Ich würde CoolTerm ausprobieren und sehen, ob das für Sie funktioniert. Ich hatte ein ähnliches Problem beim Anschließen eines Lautsprechers mit einem Sigma DSP-Chip über eine USB-Verbindung. Wenn Sie also Probleme haben, externe Geräte zu sehen, ist das Gerät möglicherweise nicht mit Ihrem Computer kompatibel. Laden Sie CoolTerm herunter und gehen Sie zu den Optionen. Unter Serieller Anschluss sollten Sie Ihren Anschluss auf die gewünschte Verbindung (Bluetooth, USB usw.) ändern. Bearbeiten Sie dann die Optionen nach Bedarf, gehen Sie zum Hauptfenster und klicken Sie auf Verbinden, um zu prüfen, ob dies für Sie funktioniert.

JohnColtraneisJC
quelle