python - 让我的 python 的蓝牙服务器对 iOS 可见

标签 python ios cordova ionic-framework bluetooth

我一直在努力将运行在 Linux 服务上的 Python 脚本中的蓝牙服务器(使用 Bluez 或类似软件)与运行 Cordova 混合应用程序的 iPhone 设备连接起来。

我为后者使用 cordova-plugin-ble-central,对于前者,我给你下面的代码:

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)

问题是 iPhone 的“scan()”函数结果为我提供了附近的多个设备,但不是我的...在 Android 中它当然工作得很好!

我错过了什么?有没有办法让它被发现?

提前致谢

最佳答案

你不能。

iOS 过滤蓝牙配置文件,不支持 RFCOMM(又名蓝牙串行端口配置文件)。这是 iOS Supported Bluetooth profiles 的列表来自 Apple 本身。

是的,很遗憾,我们知道它在桌面和 Android 上运行完美,但你不能在 iOS 上做同样的事情:)

关于python - 让我的 python 的蓝牙服务器对 iOS 可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44881169/

相关文章:

image - Phonegap Camera API allowEdit,设置图像始终为正方形

python - 在 python 2.7 中有效的循环

Python Selenium - 覆盖地理定位不起作用

python:关于exec语句的奇怪行为

Python 停止在 loadmat 上工作

ios - -canOpenURL : failed for URL: "fbauth2:/" - error: "(null)" for ios 9 (swift)

android - 是否可以在 Android 应用程序中使用 Amazon Associates 推荐计划?

ios - 如何在 cocos2d-iphone 中创建 sprite 后的静态路径?

ios - 整数属性的观察者

javascript - PhoneGap——基本架构