在我当前的项目中,要求通过蓝牙将Windows计算机上的文件发送到android设备,而手机除了标准状态(当然还有成对的蓝牙连接)外没有其他任何内容.我查看了pybluez,它看起来很简单,可以在客户端和服务器体系结构之间发送文件(实际上,它可以在我的笔记本电脑和台式机之间相当快地发送文件),但是我一生都找不到任何办法来获取python建立连接后,将文件从计算机发送到android;我的尝试一直是从设备中获取类似东西的蓝牙mac地址

nearby_devices = bluetooth.discover_devices(

duration=8, lookup_names=True, flush_cache=True, lookup_class=False)

然后尝试像这样发送文件

port = 1

for addr, name in nearby_devices:

bd_addr = addr

sock=bluetooth.BluetoothSocket( bluetooth.RFCOMM )

sock.connect((bd_addr, port))

sock.send("download-app")

sock.close()

当然,使用pybluez文档给出的示例脚本,我可以在客户端和服务器之间无缝发送文件,但是我仍然无法将文件发送到选定的android设备(即使我指定了它的地址并且知道它在其中)范围)

解决方法:

您已经到达那里了…

如您所知,您需要在蓝牙连接的另一端进行通话.您只需要用众所周知的服务(通常是these options之一)来替换您的自定义服务器.

就我而言,我的电话支持“ OBEX Object Push”服务,因此我只需要连接到该服务并使用合适的客户端来谈论正确的协议.幸运的是,PyOBEX和PyBluez的组合在这里起到了作用!

以下代码(从PyOBEX和PyBluez示例中快速修补而成)在Windows 10,Python 2.7安装上运行,并在手机上创建了一个简单的文本文件.

from bluetooth import *

from PyOBEX.client import Client

import sys

addr = sys.argv[1]

print("Searching for OBEX service on %s" % addr)

service_matches = find_service(name=b'OBEX Object Push\x00', address = addr )

if len(service_matches) == 0:

print("Couldn't find the service.")

sys.exit(0)

first_match = service_matches[0]

port = first_match["port"]

name = first_match["name"]

host = first_match["host"]

print("Connecting to \"%s\" on %s" % (name, host))

client = Client(host, port)

client.connect()

client.put("test.txt", "Hello world\n")

client.disconnect()

不过,看起来PyOBEX是一个非常小的软件包,并且与Python 3不兼容,因此如果需要,您可能需要做些移植.

标签:bluetooth,pybluez,windows,python,android

来源: https://codeday.me/bug/20191026/1934996.html

python用蓝牙发文件_android-Python蓝牙如何将文件发送到手机相关推荐

  1. 如何用计算机蓝牙发送文件,怎么用蓝牙传文件

    怎么用蓝牙传文件 两部手机之间,在没有联网,没有数据线的情况下能互相传送文件吗? 答案是肯定的.那就是使用蓝牙进行互传.那么怎么用蓝牙传文件呢?下面给大家分享一下如何用蓝牙传送文件. 第一步:首先将两 ...

  2. python解压zip文件_python-29 python解压压缩包的几种方法

    这里讨论使用Python解压例如以下五种压缩文件: .gz .tar .tgz .zip .rar 简单介绍 gz: 即gzip.通常仅仅能压缩一个文件.与tar结合起来就能够实现先打包,再压缩. t ...

  3. python批量读取csv文件-使用Python读写csv文件的三种方法

    行之间无空行十分重要,如果有空行或者数据集中行末有空格,读取数据时一般会出错,引发[list index out of range]错误.PS:已经被这个错误坑过很多次! 使用python I/O写入 ...

  4. python怎么导入txt文件夹-python读取一个目录下所有txt里面的内容方法

    实例如下所示: import os allFileNum = 0 def printPath(level, path): global allFileNum ''''' 打印一个目录下的所有文件夹和文 ...

  5. float在python_如何在python中读取.float文件? - python

    Improve this question 我正在处理大脑MRI数据,它是.float数据. 您知道如何在python中使用它吗? 与 with open('[43x25520].float') as ...

  6. python怎么读取csv文件-使用Python读写csv文件的三种方法

    行之间无空行十分重要,如果有空行或者数据集中行末有空格,读取数据时一般会出错,引发[list index out of range]错误.PS:已经被这个错误坑过很多次! 使用python I/O写入 ...

  7. Android Bluetooth蓝牙开发\蓝牙协议\蓝牙通信例子_Android支持蓝牙4.0版本_BLE开发

    一.Android Bluetooth现状 在android官网可以了解到android4.2新增了部分新功能,但是对于BT熟悉的人或许开始头疼了,那就是Android4.2引入了一个新的蓝牙协议栈针 ...

  8. python发送文件到指定的邮箱_怎么用qq邮箱发文件-用python发送139邮箱电子邮件和短信通知,让你不再错过重要信息...

    今天,咿哑呀为大家介绍怎样发送电子邮件,实现邮件到达短信通知,让你不再错过重要信息的获取.我们知道,139邮箱有邮件到达时,会自动发短信给用户,我们就可以利用这个功能,向用户的139邮箱发送邮件并获得 ...

  9. python一次性读取整个文件-使用Python读取大文件的方法

    背景 最近处理文本文档时(文件约2GB大小),出现memoryError错误和文件读取太慢的问题,后来找到了两种比较快Large File Reading 的方法,本文将介绍这两种读取方法. 准备工作 ...

最新文章

  1. Java面试之Java基础下册(含答案)
  2. 编程之美2.17 数组循环移位
  3. 两对光纤收发器用网线连接_光纤那么快,路由器和电脑之间为何不用光纤连接,反而用普通网线...
  4. 软件测试用例设计实用经验之谈
  5. 中国香皂行业产量份额预测与消费需求商机研究报告2022年
  6. fatal error C1083: 无法打开包括文件:dxtrans.h: No such file or directory
  7. 揭秘计算机之间互发数据的关键原理!
  8. JavaScript + CSS3 实现的海报画廊特效
  9. 基于椭圆-最大边缘准则学习的小麦叶片病害及其严重程度识别
  10. 【牛腩】牛腩新闻发布系统总结
  11. mysql类exadata功能_Exadata:Smart Scan(一)
  12. SAR图像聚焦质量评价插件
  13. ASP.NET Core 进程内(InProcess)托管
  14. linux游戏主机,Steam OS界面介绍
  15. Starling MovieClip API
  16. 该网页无法正常运作 目前无法处理此请求。 HTTP ERROR 500
  17. Excel2019选择数据后,指定数据作为x轴
  18. iPhone 15 高端版本万元起步;华为授权 OPPO 使用其 5G 技术;DeepMind 推出 AI 编剧|极客头条
  19. Live555(一)
  20. SEO之搜索引擎劫持

热门文章

  1. Windows ping General failure.
  2. EasyMock 单元测试
  3. z-index失效的几种情况,父标签position属性为relative的时候,详解
  4. 【数据结构】常见数据结构类型
  5. Python凯撒密码解密
  6. 2、controller介绍
  7. Notepad++显示所有字符:空格换行
  8. 老大难的GC原理及调优,这下全说清楚了
  9. mysql查询姓张的同学_Mysql 基础2 (sql查询语句)
  10. 使用Vue写一个登录页面