【发布时间】:2016-07-20 09:49:04
【问题描述】:
我想在不配对的情况下建立从安卓设备到树莓派的蓝牙连接。 RPi 中使用的语言是 Python。我正在使用来自 android 的 createInsecureRfcommSocketToServiceRecord 进行连接。
但是,只有在两个设备配对时才建立连接。 Python 中有没有 listenUsingInsecureRfcommWithServiceRecord 的等价物?
树莓派代码
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();
【问题讨论】:
-
我不相信没有配对就可以做到这一点。蓝牙配对过程是授权两个设备进行通信的过程。
-
我很好奇为什么这是不可能的,因为不安全的 rfcomm 在 android 中工作得非常好。是树莓派的限制吗?
标签: python bluetooth raspberry-pi rfcomm