通过 OBEX 发送文件(浅蓝色/OBEXFTP)

发布于 2024-12-10 00:56:08 字数 1067 浏览 0 评论 0原文

我正在拼命尝试使用 python 通过 OBEX 发送文件。我有两个功能代码,第一个使用 lightblue,另一个使用 obexftp。我们这里有两部 Android 手机,第一部是三星 Galaxy S,第二部是 HTC Desire HD(运行 CyanogenMod 7.1)。我正在尝试从运行 Ubuntu(既简洁又清晰)的计算机将文件发送到这些手机。

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

第一个是:

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

这个只适用于 Galaxy s。 如果我尝试将文件发送到desire hd,我得到:

<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()

此代码仅适用于desire hd(有时)。

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

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

I'm trying desperately to send files via OBEX, using python. I have two functioning codes, the first using lightblue and the other using obexftp. We've got here two android phones, the first is a Samsung Galaxy S and the second is HTC desire HD (running CyanogenMod 7.1). I'm trying to send files to these phones from a computer running Ubuntu (both natty and lucid).

The thing is, each code works with only one phone. And only sometimes.

The first one is:

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

this one only works with the galaxy s.
If I try to send files to the desire hd I get:

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

The second code is:

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()

This one only works with the desire hd (sometimes).

All devices were paired using the bluez-simple-agent script, which is available in Ubuntu.

I'm trying to figure out what's causing this inconsistency, unsuccessfully. I'd happy if someone here point out what am I doing wrong or show me a code that actually works.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

总以为 2024-12-17 00:56:08

OBEX 可能是出了名的错误,有很多耳机/免提制造商投入大量资金来测试 OBEX 和其他 BT 协议......
也许这就是问题所在!您可以尝试更多手机来测试吗?

OBEX can be notoriusly buggy, there are a lot of Headset/Handsfree manufacturers investing massive amounts of money in testing OBEX and other BT protocols...
Maybe this is the problem! Can you try more phones to test this?!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文