Haz que el server Bluetooth de mi python sea visible para iOS

He estado luchando para conectar un server Bluetooth (usando Bluez o similar) en un script de Python que se ejecuta en un service Linux, con un dispositivo iPhone que ejecuta una aplicación híbrida Cordova.

Estoy usando cordova-plugin-ble-central para este último, y para el primero te doy el siguiente código:

try: server_sock = BluetoothSocket(RFCOMM) server_sock.bind(("", 0)) server_sock.listen(1) port = server_sock.getsockname()[1] uuid = "d507688e-5fa7-11e7-907b-a6006ad3dba0" advertise_service(server_sock, "TestService", service_id=uuid, service_classes=[uuid]) print("Waiting for connection on RFCOMM channel %d" % port) client_sock, address = server_sock.accept() print "Accepted connection from ", address data = client_sock.recv(1024) print "received [%s]" % data client_sock.close() server_sock.close() except Exception as e: print 'ERROR: ' + str(e) 

El problema es que un resultado de la function "scan ()" del iPhone me da varios dispositivos cercanos, pero no los míos … ¡¡¡¡¡¡en Android, funciona increíblemente bien!

¿Qué me estoy perdiendo? ¿Hay alguna manera de hacerlo descubrir?

Gracias por adelantado

No puedes.

iOS filtra los perfiles de Bluetooth y el RFCOMM (también conocido como perfil de serial port de Bluetooth) no es compatible. Aquí está la list de los perfiles Bluetooth compatibles con iOS de Apple.

Y sí, es una pena, sabemos que funciona perfectamente en Desktop y Android, pero no puedes hacer lo mismo en iOS 🙂