通过OBEX发送文件(lightblue / OBEXFTP)

时间:2011-10-16 14:06:31

标签: python bluetooth

我正在拼命地使用python通过OBEX发送文件。我有两个功能代码,第一个使用lightblue,另一个使用obexftp。我们这里有两款Android手机,第一款是三星Galaxy S,第二款是HTC欲HD(运行CyanogenMod 7.1)。我正在尝试从运行Ubuntu的计算机(包括natty和lucid)向这些手机发送文件。

问题是,每个代码只能使用一部手机。而且有时候。

第一个是:

import lightblue
client=lightblue.obex.OBEXClient('MACADDR',CHANNEL)
client.connect()
client.put({'name':'file.png'},file('file.png',"rb"))
client.disconnect()

这只适用于银河系。 如果我尝试将文件发送到欲望的高清,我得到:

<OBEXRespnse reason='Internal Server Error' code=0x50 (0xd0) headers={}>

第二个代码是:

import obexftp
cli=obexftp.client(obexftp.BLUETOOTH)
channel=obexftp.browsebt('MACADDR',obexftp.PUSH)
print channel #it is the correct channel, I've doubled checked
cli.connect ('MACADDR',channel)
cli.put_file("./file.png") #I also noticed you need to wait a second before this
cli.disconnect()

这个只适用于欲望hd(有时)。

所有设备都使用bluez-simple-agent脚本配对,该脚本在Ubuntu中可用。

我正在试图找出造成这种不一致的原因,但未成功。如果有人在这里指出我做错了什么或向我展示实际有用的代码,我会很高兴。

1 个答案:

答案 0 :(得分:1)

OBEX可能不仅仅是错误的,有很多Headset / Handsfree制造商投入大量资金测试OBEX和其他BT协议...... 也许这就是问题所在!你可以尝试更多的手机进行测试吗?!