我想在没有配对的情况下建立从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();
答案 0 :(得分:0)
我能够在没有配对的情况下连接到Raspberry Pi。为此,我必须使RPi可被发现。然后我使用了来自我在Marshmallow上运行的Nexus的socket.connect()
。通过这样做,我能够在RPi中获取我的Nexus的MAC地址。唯一的问题是我每次连接时都会收到配对请求,但MAC地址是我想要的。
感谢大卫的投入!