Por qué los dispositivos iOS que ejecutan el service BLE GATT en modo periférico no se descubren en Windows (y Windows RT) 8 y 8.1

He usado la aplicación de muestra Heart Rate Monitor C # y la he modificado para search mi perfil personalizado que el iPhone está publicitando. Comprobé dos veces si el iPhone Peripheral funciona con una Mac configurada como central y un dispositivo Android también como central. El dispositivo Android no se está conectando debido a un problema en la API android, pero puede ver el service.

Emparejé con éxito los dos dispositivos (iOS y Windows, iOS y WindowsRT) y están conectados. También reinicié el Bluetooth en ambos dispositivos y los volví a conectar varias veces antes de depurar.

La muestra de Monitor de ritmo cardíaco de Windows 8 y la muestra de Monitor de ritmo cardíaco de Windows 8.1 no detectan el service de dispositivo de iPhone con el uuid dado. También traté de dejar el UUID a la configuration pnetworkingeterminada e imitar el ritmo cardíaco periférico utilizando iOS, pero con el mismo resultado.

Incluso traté de conectarme a todos los dispositivos BLENUM que findAllAsync () descubre y ninguno de ellos proporciona el service personalizado configurado.

Se admiten varias propuestas de solución, la compatibilidad con Windows BLE es casi nula.

    Después de trabajar en BLE por un time, descubrí esto:

    Mantenga los datos anunciados más cortos que 26bytes (36 incluyendo el nombre); de lo contrario, no se mostrará en el resultado findAllAsync ().