某些Ubuntu 13.04应用程序无法访问安装在MTP上的系统上的文件。 为什么?

Ubuntu 13.04附带MTP支持,可访问较新的Android设备上的文件。 我的Nexus 10工作正常:插入后,我可以使用Nautilus访问N10文件,我可以从设备复制到设备。 Evince将直接从设备打开PDF文件,但有些应用程序无法直接从设备打开文件,如gedit或libreoffice。 Gedit说:

Cannot open file mtp://[usb:001,009]/65537/5823/5824 

我想MTP是在gvfs级别集成的,所以不应该所有支持gvfs的应用程序都能够访问MTP设备吗? 为什么说明但不是gedit?

我知道MTP可以安装保险丝,但如果它与Nautilus的常规应用程序一起使用会很好,就像sftp://或smb://一样。

MTP规范不支持在Linux上实现普通文件访问所需的基本打开/读/写/关闭操作 – 它只提供文件的上传/下载,这就是MTP后端实现的内容。

Nautilus会很好地复制文件,但是一旦您尝试使用未明确说明受限操作集的应用程序,您就会收到错误。 evince是一个支持它的应用程序示例(它将文件复制到/ tmp然后打开它)。

所以,这就是13.04的情况。

现在,恰好是Google在Android中实现了一组提供开放/读/写/关闭的MTP扩展,并且可以使用这些扩展提供正常的文件访问。 我已经在gvfs开发分支中完成了这项工作,但它错过了1.16发布窗口,因此它最早不会出现在Ubuntu中,直到13.10。 14.04仍然没有

在此期间,您可以使用我的ppa来安装我已向后移植此工作的构建。

https://launchpad.net/~langdalepl/+archive/gvfs-mtp

最后,重要的是要注意这些扩展仅存在于Google的MTP堆栈中。 你有一个Nexus 10,所以它可以正常运行Android – 但使用三星设备的人或其他厂商的设备不会有这些扩展,也可能不支持普通的文件I / O.

我在Fujifilm FinePix S1500上拍照时遇到了麻烦。 错误信息:

 Operation not supported by backend 

我通过卸载相机并使用gphoto2从命令行复制文件解决了这个问题。