android 蓝牙传输图片吗,如何使用蓝牙将Android手机中的照片和视频副本发送到树莓派...

步骤1:将Raspberry Pi放入蓝牙设备

完成以下步骤我以前的版本将Raspberry Pi转换为可指导完成此步骤的Bluetooth设备。

步骤2:使Raspberry Pi设备成为Bluetooth对象推送配置文件(OPP)服务器

完成“使Raspberry Pi设备成为Bluetooth对象推送配置文件(OPP)服务器”指令中的所有步骤。

步骤3:运行Bluetooth OBEX Push服务

在Raspberry Pi上

打开终端仿真器程序

创建一个特殊目录来存储照片,如果期望。该目录可以在任何位置,只要对执行obexpushd程序的用户具有写许可权即可:

$mkdir /home/pi/photos_from_phone

关闭运行的OBEX Push Deamon程序(如果有):

ps aux | grep -i obexpushd

终端仿真器的输出

pi 2852 0.1 0.1 11940 800 pts/0 Sl + 18:49 0:00 obexpushd -B- n

pi 2863 0.0 0.1 3552 820 pts/1 S + 18:50 0:00 grep --color = auto -i消失

kill -9 2852

键入以下内容以运行OBEX Push Daemon:

obexpushd -B -n -o ‘/home/pi/photos_from_phone’

终端仿真器的输出

令人讨厌的0.11.2版权所有(C)2006-2010 Hendrik Sattler

该软件绝对不提供担保。

这是免费软件,欢迎您在某些条件下重新分发

收听在蓝牙/[00:00:00:00:00:00]:9

上,检查SDP服务器是否正在宣传已安装的OBEX Push服务,评级给蓝牙客户端:

sdptool browse local | grep obexpushd

终端仿真器的输出

服务提供商:obexpushd

步骤4:使用蓝牙将Android手机中的照片传输到Raspberry Pi

234c5cc60a244bfab2b66540c46c231e.png

2f11e605fdd39c554d35b0ae90cd4330.png

eb42cf73690b8dffb7eef45e3b150511.png

2947da00d6cb10c8b0423625896d83fa.png

3f75b6b5c38b1b394fec08e5b32ee80b.png

在Android手机上

打开照片应用

点击要加载的照片

点击底部的共享图标。它是位于中间的图标。

轻按蓝牙图标

在“蓝牙设备选择器”屏幕上,确保Raspberry Pi列在“可用设备”框中。如果Raspberry Pi未列出,请点击“扫描设备”按钮,然后等待Raspberry Pi列出。您可能需要多次重复“扫描设备”。

在“可用设备”框中找到的Raspberry Pi设备上轻按。

Android手机立即将照片发送至Raspberry Pi。

使用一根手指从顶部屏幕轻扫以显示状态屏幕。第一行表示发生了蓝牙共享事件,并且已发送文件。

点击该行以显示详细的状态消息。状态消息提供了详细信息:

发送的文件名(IMG_20141029_232956332.jpg),

蓝牙设备接收者(rpipro-0),

文件大小和

“发送完成”结果。

在Raspberry Pi上

打开一个新文件终端窗口。

将目录更改为执行obexpushd守护程序的目录:

cd /home/pi/photos_from_phone

找到文件:

ls -l IMG_20141029_232956332.jpg

终端仿真器的输出

-rw-r--r-- 1 pi pi 1241019 Oct 30 00:17 IMG_20141029_232956332.jpg

状态

文件已通过蓝牙成功传输到Raspberry Pi。

PS从Android Phone发送视频涉及相同的任务序列。

步骤5:关闭在Raspberry Pi上运行的Bluetooth OBEX Push服务

以防止恶意行为-从发送讨厌的东西到Raspberry Pi。我建议您在不使用OBEX推送程序时结束它:

转到将obex pushed作为前台进程运行的终端窗口。

按Ctlr + C键。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现Android手机之间的蓝牙传输,需要先进行蓝牙设备的配对,然后建立蓝牙Socket连接。接下来,可以通过Socket连接发送和接收数据。 对于文本数据,可以使用Java的InputStream和OutputStream进行发送和接收。具体实现如下: 发送文本数据: ```java OutputStream outputStream = socket.getOutputStream(); String message = "Hello, world!"; outputStream.write(message.getBytes()); ``` 接收文本数据: ```java InputStream inputStream = socket.getInputStream(); byte[] buffer = new byte[1024]; int bytes; while ((bytes = inputStream.read(buffer)) != -1) { String message = new String(buffer, 0, bytes); // 处理接收到的文本数据 } ``` 对于图片数据,需要先将图片转换为字节数组,然后再通过OutputStream发送。接收时,需要使用BufferedInputStream从InputStream读取字节数组,然后再将其转换为Bitmap对象。 发送图片数据: ```java OutputStream outputStream = socket.getOutputStream(); Bitmap bitmap = BitmapFactory.decodeFile("path/to/image.jpg"); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream); byte[] byteArray = byteArrayOutputStream.toByteArray(); outputStream.write(byteArray); ``` 接收图片数据: ```java InputStream inputStream = socket.getInputStream(); BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int bytesRead; while ((bytesRead = bufferedInputStream.read(buffer)) != -1) { byteArrayOutputStream.write(buffer, 0, bytesRead); } byte[] byteArray = byteArrayOutputStream.toByteArray(); Bitmap bitmap = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length); // 处理接收到的图片数据 ``` 需要注意的是,蓝牙传输的数据量比较大,因此在发送和接收数据时需要使用异步线程,避免阻塞主线程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值