我假设你已经在开发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);

上述代码的说明。 ContentValue

创建对象把URI要送

把DeviceAdddress,目标设备地址

看跌指导文件,设置出站意味着你要发送的文件。

将在通知栏显示的时间戳

放置时间戳。

注:以上代码仅在我们可以拥有要发送的文件的URI时才有用。它完全适用于图像,因为我们可以在图库中获取图像的URI,但是如果我们想从SDCard发送文件,那很困难,因为我们无法获得SDCard中可用的文件的URI。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐