c# - (Dis) Conexión de dispositivos bluetooth con Windows.Devices.Bluetooth.Rfcomm(WP8.1)
xml windows-phone (1)
Probaba con CoolTerm y veo si eso funciona para ti. Estaba teniendo un problema similar al conectar un altavoz con un chip DSP Sigma a través de una conexión USB, por lo que si tiene problemas para ver dispositivos externos, es posible que el dispositivo sea incompatible con su computadora. Descarga CoolTerm y ve a opciones y debajo de Puerto serie, debes cambiar tu puerto a la conexión deseada (bluetooth, usb, etc.) Luego edita las opciones según sea necesario y ve a la ventana principal y presiona connect para ver si te funciona.
Conectarse y desconectarse a dispositivos Bluetooth ha dado varios resultados en Windows Phone / Desktop 8.1. He estado usando el espacio de nombres Windows.Devices.Bluetooth.Rfcomm
y he intentado conectar varios dispositivos con diferentes versiones / clases de Bluetooth.
- Versión 1.2 (Clase 1 y 2)
- Versión 2.0 (Clase 1 y 2)
- Versión 2.1 (Clase 1 y 2)
- Probado en Nokia Lumia 625 y Lumia 635, Dell Latitude E6500 y Dell Precision M6400.
Cada vez que trato de conectarme a cualquiera de los dispositivos 2.0 o 2.1, hay problemas. La primera vez que intento conectarme a cada uno de los dispositivos, todo irá bien y la conexión se abrirá. Cuando cierro la conexión y vuelvo a conectar el dispositivo, comienza el problema. Durante la reconexión, la conexión nunca se abrirá y el depurador lanzará una System.Exception:
> Message: No further data is available.
Además, cuando la conexión falla, los dispositivos con Windows 8.1 seguirán intentando (sin éxito) conectarse a los dispositivos Bluetooth por sí mismos, incluso cuando mi propia aplicación finalice. A veces, el dispositivo con Windows 8.1 también mostrará el dispositivo Bluetooth como conectado, mientras que el dispositivo muestra visualmente que ya no está conectado. La única forma de volver a conectar el dispositivo Bluetooth es desvincularlo y apagar / reiniciar Bluetooth en el dispositivo con Windows.
Cada vez que trato de hacer una nueva llamada a DeviceInformation
después de una conexión fallida, se negará a devolver el dispositivo que intenté conectar anteriormente.
> Message: The service cannot be found in the specified name space.
Extraño resultado, los 1.2 dispositivos funcionan perfectamente.
Archivo de manifiesto:
<m2:DeviceCapability Name="bluetooth.rfcomm">
<m2:Device Id="any">
<m2:Function Type="serviceId:00001101-0000-1000-8000-00805F9B34FB"/>
</m2:Device>
</m2:DeviceCapability>
Seleccionar dispositivo:
Guid RfcommChatServiceUuid = Guid.Parse("00001101-0000-1000-8000-00805F9B34FB");
await DeviceInformation.FindAllAsync(RfcommDeviceService.GetDeviceSelector(RfcommServiceId.FromUuid(RfcommChatServiceUuid)));
Conectando: (id = chatserviceid)
StreamSocket _socket;
RfcommDeviceService service = await RfcommDeviceService.FromIdAsync(deviceInformation1._id);
await _socket.ConnectAsync(service.ConnectionHostName, service.ConnectionServiceName);
Desconectando:
this._socket.Dispose();
this._socket = null;
Investigué MSDN, ejemplos de código, demostraciones, videos de canal 9 y StackOverflow, ningún recurso puede decirme si hay problemas con Windows.Devices.Bluetooth.Rfcomm
.
¿Hay alguien que reconozca estos resultados extraños? ¿Estoy haciendo algo mal?
ACTUALIZACIÓN: Trabajar con Windows Phone 8.1 GDR2 es una posible solución.
NOTA: Para mí y para muchas otras personas, esta actualización aún presenta los mismos problemas.