Skip to main content
 首页 » 编程设计

带有python-bluez客户端的android蓝牙serversocket

2025年05月04日14myhome

我正在尝试使用笔记本电脑上的 python-bluez 和手机上的 android-bluetooth API 将我的笔记本电脑(作为客户端)连接到我的安卓手机(作为监听器)。

我在手机上使用以下代码:

BluetoothServerSocket tmp = badapter.listenUsingRfcommWithServiceRecord( 
    badapter.getName(), MY_UUID); 
BluetoothServerSocket bserversocket = tmp; 
if(bserversocket != null) 
{ 
    BluetoothSocket acceptsocket = bserversocket.accept(timeout);    
} 
//timeout is set to about 15 sec 
if(acceptsocket != null) 
{ 
    out.append("got the connection...\n");    
} 

以及我的笔记本电脑客户端的 python 中的以下内容:

from bluetooth import * 
 
btooth_addr = "38:EC:E4:57:1F:1B" 
 
sock = BluetoothSocket(RFCOMM) 
sock.connect((btooth_addr, 2)) 
 
print "Connected" 
sock.close() 

监听器在不确认来自笔记本电脑的任何连接的情况下超时,而发送者继续在不同端口上的所有尝试上打印“已连接”。

问题是我不知道也不能设置android手机正在监听的端口/ channel ,而且我需要填写一个端口号作为'connect'的第二个参数(2 in这个 fragment )。

请帮帮我 - 我现在唯一的目标是让手机确认连接尝试。

请您参考如下方法:

看看 pybluez documentation(source code) for establishing client connections .

您可以使用 find_service 为提供的蓝牙地址和 UUID 获取正确的端口。 然后像在代码中一样连接套接字,用正确的值替换硬编码的端口值。

别忘了投票!