Android:我该如何通过蓝牙浏览远程设备的文件系统?

7

我需要构建一个Android应用程序,通过蓝牙从远程设备获取/放置文件;该应用还必须浏览远程文件系统。 我已经阅读了一些关于OBEX的内容,但真的没有找到任何Android的示例,除了市场上一些很棒的应用程序,如Bluetooth文件传输。

如何在应用程序中实现它?


2
http://en.wikipedia.org/wiki/OBject_EXchange - Marc B
谢谢,但我正在寻找特定于Android的东西。 - Cris
可能是如何在Android中实现OBEX和OPP?的重复问题。 - Hasturkun
已经找到了那个链接,问题是没有解决方案。 - Cris
如果你制作一个充当网关的应用程序,用户可以选择要在周围共享哪个文件,而其他蓝牙安卓设备必须拥有该应用程序才能浏览其他设备的共享文件夹。我希望你明白我的意思。 - TeaCupApp
2个回答

7

由于在Android上没有暴露给开发人员的标准OBEX OPP/FTP方法/实现,因此您将不得不通过蓝牙API自己实现它,该API非常强大,可以实现几乎任何协议,因为它与TCP套接字相似。

首先,您需要访问文件系统。假设是SD卡,则这里有一个指南;否则,您需要root访问权限。然后,您需要在两个设备之间建立蓝牙连接(样板代码)。最后,您应该谷歌一下OBEX OPP/FTP的协议规范并实现它,这可能需要最长的时间。

我很确定市场上的其他应用程序都是这样做的,因为它们需要在两个设备上都安装应用程序才能发送/接收文件和浏览文件系统。我无法深入了解OBEX协议本身,因为我不熟悉它,但如果需要,我可以详细说明之前的所有内容。但是,谷歌搜索结果中出现了这个,在实现时可能会有用。

不确定这是否有帮助,但我看到this对许多人发送文件很有效。


0

使用内置的Android API是不可能实现这个功能的。虽然有一些意图可以调用来通过蓝牙共享文件,但是不同型号之间的兼容性存在差异。然而,如果您想为已root的手机编写应用程序,则有一些方法可供选择。如果是这种情况,请注意。


我的应用程序应该在非root设备上运行。就像蓝牙文件传输一样,用户可以浏览远程设备的文件系统。谢谢。 - Cris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接