Python Raspberry PI:PyBluez服务(UUID)未找到(sdptool+;Android应用程序)

Python Raspberry PI:PyBluez服务(UUID)未找到(sdptool+;Android应用程序),python,sockets,bluetooth,raspberry-pi,bluez,Python,Sockets,Bluetooth,Raspberry Pi,Bluez,我尝试在raspberry pi上编写一个简单的Bluetooth服务器套接字,以pybluez为例: 我尝试从Android应用程序中进行连接 当我运行Android应用程序时,我无法连接到服务器套接字。当我显示Android看到的UUID时,我得到以下列表,其中不包含我在PI上的实际服务: 08-05 22:11:33.806 13510-13510/ch.erni.btlintilla D/DevName﹕ RichPi 08-05 22:11:33.806 13510-13510/c

我尝试在raspberry pi上编写一个简单的Bluetooth服务器套接字,以pybluez为例:

我尝试从Android应用程序中进行连接

当我运行Android应用程序时,我无法连接到服务器套接字。当我显示Android看到的UUID时,我得到以下列表,其中不包含我在PI上的实际服务:

08-05 22:11:33.806  13510-13510/ch.erni.btlintilla D/DevName﹕ RichPi
08-05 22:11:33.806  13510-13510/ch.erni.btlintilla D/UUID﹕ 0000112d-0000-1000-8000-00805f9b34fb
08-05 22:11:33.806  13510-13510/ch.erni.btlintilla D/UUID﹕ 0000110e-0000-1000-8000-00805f9b34fb
08-05 22:11:33.806  13510-13510/ch.erni.btlintilla D/UUID﹕ 00001112-0000-1000-8000-00805f9b34fb
08-05 22:11:33.806  13510-13510/ch.erni.btlintilla D/UUID﹕ 0000111f-0000-1000-8000-00805f9b34fb
08-05 22:11:33.806  13510-13510/ch.erni.btlintilla D/UUID﹕ 00000000-0000-1000-8000-00805f9b34fb
08-05 22:11:33.806  13510-13510/ch.erni.btlintilla D/UUID﹕ 00000000-0000-1000-8000-00805f9b34fb
然后我在PI上运行了
sdptool browse
,没有发现任何设备

我已经尝试过类似线程中提到的不同解决方案(DisablePlugins=pnat,在启动服务之前进行配对)。谢谢你的帮助

下面是用于在py上创建服务器套接字的示例代码

# file: rfcomm-server.py
# auth: Albert Huang <albert@csail.mit.edu>
# desc: simple demonstration of a server application that uses RFCOMM sockets
#
# $Id: rfcomm-server.py 518 2007-08-10 07:20:07Z albert $

from bluetooth import *

server_sock=BluetoothSocket( RFCOMM )
server_sock.bind(("",PORT_ANY))
server_sock.listen(1)

port = server_sock.getsockname()[1]

uuid = "94f39d29-7d6d-437d-973b-fba39e49d4ee"

advertise_service( server_sock, "SampleServer",
                   service_id = uuid,
                   service_classes = [ uuid, SERIAL_PORT_CLASS ],
                   profiles = [ SERIAL_PORT_PROFILE ], 
#                   protocols = [ OBEX_UUID ] 
                    )

print("Waiting for connection on RFCOMM channel %d" % port)

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

try:
    while True:
        data = client_sock.recv(1024)
        if len(data) == 0: break
        print("received [%s]" % data)
except IOError:
    pass

print("disconnected")

client_sock.close()
server_sock.close()
print("all done")
#文件:rfcomm-server.py
#作者:黄伟业
#desc:使用RFCOMM套接字的服务器应用程序的简单演示
#
#$Id:rfcomm-server.py 518 2007-08-10 07:20:07Z$
从蓝牙导入*
服务器\u sock=BluetoothSocket(RFCOMM)
服务器\u sock.bind((“”,端口\u ANY))
服务器\u sock.listen(1)
port=server\u sock.getsockname()[1]
uuid=“94f39d29-7d6d-437d-973b-fba39e49d4ee”
广告服务(服务器,即“SampleServer”,
服务\u id=uuid,
服务类=[uuid,串行端口类],
配置文件=[串行端口配置文件],
#协议=[OBEX_UUID]
)
打印(“正在等待RFCOMM通道%d”%port上的连接)
client\u sock,client\u info=server\u sock.accept()
打印(“已接受的连接来自”,客户端信息)
尝试:
尽管如此:
data=client_sock.recv(1024)
如果len(数据)==0:中断
打印(“已接收[%s]%数据)
除IOError外:
通过
打印(“断开连接”)
客户端_sock.close()
服务器\u sock.close()
打印(“全部完成”)