2011-02-05 136 views
10

我正在编写我的第一个Android应用程序,它或多或少会成为挂载点管理器。本地挂载和NFS挂载非常简单,但我不确定如何处理CIFS股票。ANDROID:使用Java访问CIFS共享

理想情况下,选择主机后,将显示CIFS份额列表。至少,我应该能够输入CIFS URI /共享字符串并装载它(例如://192.168.1.100/mount_point)。我正在考虑EStrongs,你可以选择一个主机,它会显示共享,然后你可以进一步探索。

我见过jCIFS(我认为这是Astro使用的),并且我已经在xda-developers上看到过提及cifs.ko模块。还有其他标准方法吗?有关如何使用jCIFS或cifs.ko并一般这样做的任何提示/建议?我宁愿不必获得root权限。

+0

很抱歉破坏你的想法,但它已经完成 https://market.android.com/details?id=ws.plattner.cifsmanager – maxcanna 2011-02-24 16:10:33

回答

4

研究员Androider在这里,我已经研究过各种协议在过去,这是我发现:

如果它必须是CIFS,那么我会建议JCIFS。正如你所提到的,Astro的确使用它,而EStrongs也是如此。 And ... Lysoft的AndSMB也是如此。所以,我非常肯定这是'去'的标准方法。

如果您正在寻找到只支持SMB,你可能有兴趣在这个作为一种替代方案: http://java-source.net/open-source/network-clients/jftp

此外,对于其他协议,这是一个很大的列表来仔细查看: http://java-source.net/open-source/network-clients

希望这有助于。

2

由于Android是Linux,你可以使用内核驱动程序,但这些装车需要root,或者你可以使用FUSE,这是自姜饼是所谓的支持(还没有尝试过我自己),或甚至可以使用Java库一样JCIFS

2

一个快速的Wireshark捕获表明EStrongs也使用jCIFS,所以这也是我的建议。 jCIFS被编写为CIFS客户端工具包,因此它应该适应您的项目目标。它本身并不“挂载”远程文件系统,但可让您访问文件,目录,共享列表等。您如何呈现该信息取决于您。

另一个资源是Implementing CIFS,这是一本关于SMB/CIFS协议套件内部的在线书籍。尤其要注意Appendix D,它涵盖了SMB URL格式。 SMB URL优先于原始文章(上文)中使用的模拟UNC格式。