如何通过蓝牙android发送/接收文本和图片到另一个Android手机

时间:2012-01-18 10:14:26

标签: android bluetooth send

我正在开发一个Android应用程序,其中我想从一个Android手机发送(名称,电子邮件,单元格#,地址,公司,名称,图片)到另一个。问题是如何发送这些数据+图片。请提供一些代码。

1 个答案:

答案 0 :(得分:2)

请参阅此链接Bluetooth sharing,其中显示了如何在设备之间共享文件

我认为您有在Android中开发蓝牙应用程序的经验。 Android蓝牙API不直接支持OBEX,意味着我无法将任何文件直接推送到任何设备。 Android蓝牙API使用流(InputStream和OutputStream)提供发现,连接和数据传输等基本功能。

使用蓝牙传输文件需要大量编码。我们需要管理设备发现,连接,IO等。

现在我发现使用蓝牙发送文件非常简单。 Android具有内置蓝牙应用程序,允许我们跨设备发送文件。内置蓝牙应用程序使用SharedPerference来管理传入和传出文件的队列。

我找到了使用相同技术的方法。 Android蓝牙应用程序使用ContentProvider来管理存储和用户界面之间的通信。所以我发现了我们可以使用它的功能

以下是代码,以下6行允许您使用蓝牙发送文件,您只需要两件事1.您要发送的文件的URI 2. DeviceAddress。

ContentValues values = new ContentValues();
values.put(BluetoothShare.URI, "content://" + uritoSend);
values.put(BluetoothShare.DESTINATION, deviceAddress);
values.put(BluetoothShare.DIRECTION, BluetoothShare.DIRECTION_OUTBOUND);
Long ts = System.currentTimeMillis();
values.put(BluetoothShare.TIMESTAMP, ts);

上述代码的说明。

  1. 创建ContentValue的对象
  2. 放置您要发送的文件的URI
  3. 将DeviceAdddress,目标设备地址
  4. 放入
  5. put Direction,设置出站表示您要发送文件。
  6. 时间戳将显示在通知栏
  7. 加上时间戳。
  8. 注意:只有我们可以拥有要发送的文件的URI时,上面的代码才有用。它非常适用于图像,因为我们可以在Gallery中获取图像的URI,但是如果我们想从SDCard发送文件那么很难,因为我们无法在SDCard中获取文件的URI。