我需要构建一个Android应用程序,通过蓝牙从远程设备获取/放置文件;该应用还必须浏览远程文件系统。 我已经阅读了一些关于OBEX的内容,但真的没有找到任何Android的示例,除了市场上一些很棒的应用程序,如Bluetooth文件传输。
如何在应用程序中实现它?
我需要构建一个Android应用程序,通过蓝牙从远程设备获取/放置文件;该应用还必须浏览远程文件系统。 我已经阅读了一些关于OBEX的内容,但真的没有找到任何Android的示例,除了市场上一些很棒的应用程序,如Bluetooth文件传输。
如何在应用程序中实现它?
由于在Android上没有暴露给开发人员的标准OBEX OPP/FTP方法/实现,因此您将不得不通过蓝牙API自己实现它,该API非常强大,可以实现几乎任何协议,因为它与TCP套接字相似。
首先,您需要访问文件系统。假设是SD卡,则这里有一个指南;否则,您需要root访问权限。然后,您需要在两个设备之间建立蓝牙连接(样板代码)。最后,您应该谷歌一下OBEX OPP/FTP的协议规范并实现它,这可能需要最长的时间。
我很确定市场上的其他应用程序都是这样做的,因为它们需要在两个设备上都安装应用程序才能发送/接收文件和浏览文件系统。我无法深入了解OBEX协议本身,因为我不熟悉它,但如果需要,我可以详细说明之前的所有内容。但是,谷歌搜索结果中出现了这个,在实现时可能会有用。
不确定这是否有帮助,但我看到this对许多人发送文件很有效。
使用内置的Android API是不可能实现这个功能的。虽然有一些意图可以调用来通过蓝牙共享文件,但是不同型号之间的兼容性存在差异。然而,如果您想为已root的手机编写应用程序,则有一些方法可供选择。如果是这种情况,请注意。