jjc*_*ico 14 gedit nautilus android mtp 13.04
Ubuntu 13.04 带有 MTP 支持,可以在较新的 Android 设备上访问文件。我的 Nexus 10 工作正常:插入后,我可以使用 Nautilus 访问 N10 文件,我可以从设备复制和复制到设备。Evince 将直接从设备打开 PDF 文件,但某些应用程序无法直接从设备打开文件,如 gedit 或 libreoffice。Gedit 是这样说的:
Cannot open file mtp://[usb:001,009]/65537/5823/5824
Run Code Online (Sandbox Code Playgroud)
我猜 MTP 是在 gvfs 级别集成的,所以不是所有启用 gvfs 的应用程序都应该能够访问 MTP 设备吗?为什么 evince 而不是 gedit?
我知道 MTP 可以安装保险丝,但如果它与 Nautilus 的常规应用程序一起使用,就像 sftp:// 或 smb:// 一样,那就太好了。
lan*_*epl 29
MTP 规范不支持在 Linux 上实现正常文件访问所需的基本打开/读/写/关闭操作——它只提供文件的上传/下载,这就是 MTP 后端实现的。
Nautilus 可以很好地复制文件,但是一旦您尝试使用未明确说明受限操作集的应用程序,您就会收到错误消息。evince是一个支持它的应用程序的例子(它将文件复制到 /tmp 然后打开它)。
所以,这就是 13.04 中发生的事情。
现在,碰巧 Google 在 Android 中实现了一组 MTP 扩展,提供打开/读/写/关闭,并且可以通过这些提供正常的文件访问。我已经在 gvfs 开发分支中完成了这项工作,但它错过了 1.16 发布窗口,所以它最早要到 13.10 才会出现在 Ubuntu 中。14.04 仍然没有
同时,您可以使用我的 ppa 在我向后移植这项工作的地方安装构建。
https://launchpad.net/~langdalepl/+archive/gvfs-mtp
最后,需要注意的是,这些扩展仅存在于 Google 的 MTP 堆栈中。你有一台 Nexus 10,所以它可以在运行 Android 系统时正常工作——但是使用三星设备或其他制造商设备的人不会有这些扩展,并且可能不支持正常的文件 I/O。