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

Posted

技术标签:

【中文标题】Android:如何通过蓝牙浏览远程设备文件系统?【英文标题】:Android: how can i browse remote device file system via bluetooth? 【发布时间】:2011-11-03 21:00:07 【问题描述】:

我需要构建一个通过蓝牙从远程设备放置/获取文件的 android 应用;该应用程序还必须浏览远程文件系统。 我读过一些关于 OBEX 的文章,但实际上并没有找到任何适用于 Android 的示例,除了市场上一些出色的应用程序,如蓝牙文件传输。 它如何在应用程序中实现?

【问题讨论】:

en.wikipedia.org/wiki/OBject_EXchange 谢谢,但我正在寻找特定于 Android 的东西 How can OBEX and OPP be implemented in Android?的可能重复 已经找到那个链接了,问题是没有解决办法 如果您制作一个充当网关的应用程序,但是在这种情况下,您可以让用户选择他们想要在他们周围共享的文件,并且其他蓝牙 android 设备必须具有该应用程序才能探索其他设备的共享文件夹。我希望你明白我的意思 【参考方案1】:

这对于内置的 Android API 是不可能的。您可以调用一些意图通过蓝牙共享文件 - 但模型之间的兼容性各不相同。但是,如果您想为有根手机编写应用程序,有一些方法。如果是这种情况,请注意。

【讨论】:

我的应用程序应该在非根设备上运行。就像蓝牙文件传输一样,用户可以浏览远程设备文件系统。谢谢【参考方案2】:

由于没有向 Android 上的开发人员公开的 OBEX OPP/FTP 的标准方法/实现,您将不得不使用 Bluetooth API,它足够强大,几乎可以实现您想要的任何协议,因为它镜像TCP 套接字。

您必须做的第一件事是访问文件系统。假设 SD 卡,here 是一个指南,否则您将需要 root 访问权限。然后,您希望在两个设备之间建立蓝牙连接(样板代码)。最后,您应该搜索 OBEX OPP/FTP 的协议规范并实施它,这可能会花费最多的时间。

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

不确定这是否会有所帮助,但我看到 this 曾为很多人发送文件工作。

【讨论】:

以上是关于Android:如何通过蓝牙浏览远程设备文件系统?的主要内容,如果未能解决你的问题,请参考以下文章

向远程蓝牙设备发送数据

Android 经典蓝牙开发(一)

从 Android 中配对的蓝牙设备读取数据

android蓝牙:在多个连接的设备上读取远程RSSI

如何通过蓝牙与 matlab '仪器控制'-工具箱连接 android 设备?

如何在windows pc和android设备之间建立蓝牙连接