Python 中的不安全 rfcomm 连接

Insecure rfcomm connection in Python

我想在不配对的情况下建立从 android 设备到 Raspberry Pi 的蓝牙连接。 RPi 中使用的语言是 Python。我正在使用 android 中的 createInsecureRfcommSocketToServiceRecord 进行连接。

但是只有当两个设备配对时才能建立连接。 Python中是否有等价的listenUsingInsecureRfcommWithServiceRecord

Raspberry Pi代码

server_sock=BluetoothSocket( RFCOMM )
server_sock.bind(("",PORT_ANY))
server_sock.listen(1)
port = server_sock.getsockname()[1]

uuid = "f3c74f47-1d38-49ed-8bbc-0369b3eb277c"

advertise_service( server_sock, "AquaPiServer",
                   service_id = uuid,
                   service_classes = [ uuid, SERIAL_PORT_CLASS ],
                   profiles = [ SERIAL_PORT_PROFILE ], 
                   )

    client_sock, client_info = server_sock.accept()
    print "Accepted connection from ", client_info

Android代码

BluetoothDevice device = blueAdapter.getRemoteDevice(RPi_MAC);
BluetoothSocket socket = device.createInsecureRfcommSocketToServiceRecord(UUID.fromString("f3c74f47-1d38-49ed-8bbc-0369b3eb277c"));
blueAdapter.cancelDiscovery();
socket.connect();

我无需配对即可连接到 Raspberry Pi。为此,我必须让 RPi 可被发现。然后我在 Marshmallow 上使用了 Nexus 运行 中的 socket.connect()。通过这样做,我能够在 RPi 中获得我的 Nexus 的 MAC 地址。唯一的问题是我每次连接时都会收到配对请求,但 MAC 地址正是我想要的。

感谢大卫的投入!