您的位置:首页 > 移动开发 > Android开发

通过MTP协议用gvfs挂载android手机

2015-09-30 00:26 555 查看
如果你安装好了gvfs-mtp,使用nautilus可以直接打开,但它究竟挂载在了哪里呢?

nautilus只会显示mtp://[usb:xxx,xxx]/,让人有点摸不着头脑,我找了很久也没找到具体的说明。

后来我在ubuntu论坛上找到了信息,原来它被挂载在了/run/user/<USERID>/gvfs下面

USERID可以用df找找看,我的是1000

在gvfs文件夹下会有类似
mtp:host=%5Busb%3A002%2C025%5D
的文件夹,那就是你手机挂载的位置

这是有人在回答中提供的脚本

#/bin/bash

# Find the path to MTP/PTP connected device by USB ID
find_path_by_usbid () {
lsusboutput="$(lsusb -d $1 | head -n1)"
usbbus="${lsusboutput% Device*}"
usbbus="${usbbus#Bus }"
usbdevice="${lsusboutput%%:*}"
usbdevice="${usbdevice#*Device }"

# Media Transfer Protocol
if [ -d "$XDG_RUNTIME_DIR" ]; then
runtimedir="$XDG_RUNTIME_DIR"
else
runtimedir="/run/user/$USER"
fi
MtpPath="$runtimedir/gvfs/mtp:host=%5Busb%3A${usbbus}%2C${usbdevice}%5D"
# Picture Transfer Protocol
PtpPath="$runtimedir/gvfs/gphoto2:host=%5Busb%3A${usbbus}%2C${usbdevice}%5D"

if [ -d "$MtpPath" ]; then
echo "$MtpPath"
elif [ -d "$PtpPath" ]; then
echo "$PtpPath"
else
echo "Error: File or directory was not found."
fi
}

# USB ID for Nexus 4
Id="18d1:4ee2"
Path="$(find_path_by_usbid $Id)"

# Backup pictures if device is connected
if [ "$Path" == "Error: File or directory was not found." ]; then
echo "$Path"
exit
else
rsync -av --progress $Path/DCIM/Camera/ ~/Pictures/Backup_Nexus4/
fi
这是回答的网址
点击打开链接

如果要在命令行中挂载可以在用lsusb查看你的手机后,使用gvfs-mount命令挂载。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android gvfs MTP