使用Python通过蓝牙在两部手机之间发送文件

0 投票
1 回答
920 浏览
提问于 2025-04-16 16:10

我正在尝试用Python语言在两部手机之间发送文件。

发送文件的手机我用了这个代码:

import socket,e32socket,appuifw
socket=e32socket.socket(e32socket.AF_BT,e32socket.SOCK_STREAM,e32socket.BTPROTO_RFCOMM,e32socket.OBEX)
device =e32socket.bt_obex_discover()
print device
address=device[0]
print address
channel=device[1][u'OBEX Object Push']
print channel
e32socket.bt_obex_send_file(address,channel,u"E:23.txt")

接收文件的手机我用了这个代码:

import socket,e32socket,appuifw
socket=e32socket.socket(e32socket.AF_BT,e32socket.SOCK_STREAM,e32socket.BTPROTO_RFCOMM,e32socket.OBEX)
e32socket.bt_obex_receive(socket, u"E:23.txt")

我把第一个代码保存为.py文件,然后在手机上用Python解释器执行。首先,蓝牙搜索菜单会出现,然后我选择了一个有对应MAC地址的手机,这个地址就是在第一个代码里写的。最后一行代码出现了一个错误:“socket.error:(2,'No such file or directory')”,这是我遇到的错误。

有没有人能帮我解决这个问题?

1 个回答

0

首先,“E:23.txt”并不是一个有效的文件路径。记得要用好斜杠,它们非常重要!所以,你需要把它从:

e32socket.bt_obex_send_file(address,channel,u"E:23.txt")

改成

e32socket.bt_obex_send_file(address,channel,u"E:\\23.txt")

另外,我对bt_obex_receive不是很熟悉,但你也需要修正那个路径。

还有,你引入了appuifw模块,但并没有使用它。除非你打算添加使用它的代码,否则引入它是很浪费的。

撰写回答