Pregunta

se necesita para conectarse a un dispositivo Bluetooth a través del puerto COM virtual creado en Windows. Es fácil cuando el puerto ya se ha creado durante el procedimiento de emparejamiento manual. Pero me gustaría que mi solicitud para aliviar un usuario del emparejamiento manual de un dispositivo. Me gustaría presentar todos los dispositivos en el intervalo, permitir que el usuario eligió uno, y luego crear puerto COM virtual conectado con el dispositivo seleccionado. No estoy tratando de evitar el proceso de sincronización en sí, sino más bien me gustaría invocar por mi solicitud.

empecé a recibir familiarizado con Microsoft Bluetooth API . Y entonces surgieron algunas dudas. Me he estado preguntando qué pasaría si algún usuario utilizaría diferente (que el de Microsoft) pila de Bluetooth? Es la API de Microsoft el verdadero API de Bluetooth, que tienen que ser aplicadas por cualquier otro proveedor de pila de Bluetooth? O más bien cada proveedor tiene su propia API, y el de Microsoft es sólo uno de muchos otros?

¿Fue útil?

Solución

Gracias a todos por una valiosa aportación. Me gustaría resumir lo que he encontrado hasta ahora. La API de Microsoft Bluetooth no está funcionando API del sistema. Solicitud por escrito en contra de ella no cooperará correctamente con cualquier otro Bluetooth pila . Parece que las aplicaciones que están destinados a cooperar con múltiples pilas deberá proporcionar alguna capa de abstracción de pila, y la pila de código específico para todos ellos.El otra solución es permitir que el usuario para el emparejamiento manual del dispositivo Bluetooth, lo que eventualmente crear un poco de dispositivo virtual en el sistema operativo (por ejemplo, el puerto COM). A continuación, la aplicación puede utilizar la interfaz estándar de tal dispositivo.

Otros consejos

No puedo hablar en nombre de la API de Microsoft Bluetooth, pero hay múltiples pilas Bluetooth disponible para la plataforma PC (aún más para los dispositivos móviles).

El API subyacente se define por la Bluetooth Core Spec y por lo que todas las pilas deben ser capaces de interactuar, de hecho, es obligatorio que la interoperabilidad o no pueden utilizar el nombre y el logotipo de Bluetooth.

En cuanto a la vinculación, el va a tener un tiempo difícil conseguir dispositivos para emparejar si tienen seguridad por defecto, lo que requiere un código pin.

Las cosas podrían ser más simple en el futuro (próximo), como el estándar Bluetooth se ha introducido un nuevo modelo de seguridad, seguro emparejamiento simple , que tiene un modo de 'sólo funciona' que no requiere ningún código PIN. Esto es aún más fuerte que la seguridad actual, salvo en contra del hombre en los ataques del medio. Sin embargo, podría ser un tiempo antes de ver los chips con esta característica en los PC.

Si se puede cambiar al uso de .NET: - / Puedo recomendar nuestra biblioteca 32feet.NET . Para emparejar explícita que hay BluetoothSecurity.PairDevice. También podemos crear un puerto virtual para usted, por ejemplo:

   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);

Sin embargo, yo realmente no me gusta puertos serie virtuales así que siempre sugieren que las personas utilizan una conexión de tomas normal usando nuestra clase BluetoothClient, que se encargará automáticamente una solicitud de vinculación, si es necesario.

En Win32 apoyamos las pilas de Microsoft, Widcomm / Broadcom y BlueSoleil. En Widcommno no hay soporte para SetServiceState allí todavía, y su API no tiene soporte para responder a emparejamiento peticiones . BlueSoleil debe soportar tanto.

Guía de un breve usuario está en 32feet.NET - Guía del usuario , y toda la documentación de la clase está disponible en el sitio principal http://32feet.net , la documentación Widcommno es sólo en nuestro repositorio de código en este momento.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top