【问题标题】:Access to files on CIFS partition from my application从我的应用程序访问 CIFS 分区上的文件
【发布时间】:2014-02-24 15:02:18
【问题描述】:

我刚刚使用内核模块在根目录下将 samba 共享安装到我的 Nexus 7 (CM 11)。

应用程序(ES 文件管理器、Total Commander 等)似乎一切正常,我可以看到文件并且可以读取它们,甚至来自 shell 的“cat”命令也可以。 但我无法从我的应用程序中读取它们!既不是本机调用(open 将 errno 设置为 ENOENT)也不是 FileInputStream。

我尝试了很多名字:

/storage/emulated/0/mounted_folder/file.txt
/storage/emulated/legacy/mounted_folder/file.txt
/sdcard/mounted_folder/file.txt
/mnt/shell/emulated/0/mounted_folder/file.txt

拥有root权限,拥有读写权限和许多其他变体,仍然没有运气:(

我错过了什么?

【问题讨论】:

  • 只是调用 fopen (“adb shell cat”命令在相同路径下工作正常)
  • 您需要通过使用的安装命令确定您安装共享的路径,方法是从 shell 运行不带参数的 mount 命令,或者将 /proc/mounts 作为文本读取文件并检查它。另请注意,Android 现在支持按进程挂载,因此您可以(尽管可能不太可能)以仅为 ADB 而非应用程序挂载的方式挂载共享。此外,您对“使用 root 权限”尝试此操作的评论可能会被误认为即使在 root 设备上,应用程序本身也不会以 root 身份运行。
  • 我已经找到了真正的路径,它也是我尝试打开的“/mnt/shell/emulated/0/mounted_folder/file.txt”。为 adb 和应用程序安装了文件夹,我从 adb shell 和 android 文件管理器中打开了它。应用程序可以在代码中调用“su”来请求 root 权限。

标签: android samba cifs


【解决方案1】:

问题的原因在于多用户存储实现。您可以在此处阅读讨论并获取补丁:http://forum.xda-developers.com/showthread.php?t=2106480

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-06
    • 1970-01-01
    • 2015-07-17
    • 2019-02-07
    相关资源
    最近更新 更多