我正在开发一个Android应用程序,其中我想从一个Android手机发送(名称,电子邮件,单元格#,地址,公司,名称,图片)到另一个。问题是如何发送这些数据+图片。请提供一些代码。
答案 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);
上述代码的说明。
注意:只有我们可以拥有要发送的文件的URI时,上面的代码才有用。它非常适用于图像,因为我们可以在Gallery中获取图像的URI,但是如果我们想从SDCard发送文件那么很难,因为我们无法在SDCard中获取文件的URI。