Android - 在代码中安装Samba共享

时间:2013-06-09 14:14:22

标签: android mount smb

我正在寻找一种以编程方式安装Samaba股票的方法。

我知道this question,如果它有效,它将允许浏览我的应用程序中的Samba共享,但我希望这些共享在安装后可供其他应用程序使用。< / p>

我知道ES文件资源管理器可以执行此操作,因此必须可以在代码中实现,但我正在尝试弄清楚它是如何完成的。我能想到的唯一方法是使用Runtime.getRuntime()。exec(...)打开一个进程但是接下来会发出什么命令的问题。我一直在终端模拟器应用程序中玩,标准的mount命令似乎不起作用。我尝试了以下内容:

mount -t smbfs //[ipaddress] /mnt/sdcard/net/Share1

mount -t cifs //[ipaddress] /mnt/sdcard/net/Share1

但是在这两种情况下我都收到了相当无法提供信息的错误消息“mount:no such device”

我哪里可能出错?

2 个答案:

答案 0 :(得分:5)

您的内核目前可能不支持smbfs / cifs。正如Delyan所述,确保您的内核可以挂载这些文件系统:

$ cat /proc/filesystems
nodev   sysfs
nodev   rootfs
nodev   bdev
nodev   proc
nodev   cgroup
nodev   tmpfs
nodev   debugfs
nodev   sockfs
nodev   usbfs
....

如果没有列出,你应该尝试进行modprobing(有时你只需要激活你想要的模块),然后获得root访问权限:

# modprobe <modulename(without.ko)>

e.g。 :

# modprobe cifs

如果它不起作用,您将不得不更改或重新编译内核(包括适当的模块)。

答案 1 :(得分:1)

我遇到了完全相同的问题。 Cifs经理正在工作,但来自终端的命令却没有。无论如何,对我来说,事实证明我只需稍微修改命令就可以了。请尝试以下命令:

mount -o username = guest,password = guest -t cifs // [ipaddress] / [share] / sdcard / cifs / nas

确保在运行命令之前存在本地文件夹/ sdcard / cifs / nas(或您所需的等效文件夹),否则您可能会得到一个&#34;文件或目录不存在&#34;错误。