首页 > 数码玩家 > 使用Nexus7的MTP功能

使用Nexus7的MTP功能

2012-10-09 18:47 星期二    浏览: 3,054    绿 发表评论 阅读评论

平时,我的手机、平板、笔记本电脑在共享传输文件时,一直使用蓝牙,告别了线缆的束缚不自由和反复插拔的麻烦,体会了无线连接带来的便利。只有kindle还要usb线。
Nexus7到手数月,这种Android新版本设备不再提供Mass storage功能,也就是当手机或平板连接上PC时,不再作为一个U盘弹出。
新使用的功能是MTP(Media Transfer Protocol)和PTP(Picutre Transfer Protocol)。

为了体验下它们,开始了我的Ubuntu下的MTP之旅。
(1)首先为ubuntu安装支持包:
sudo apt-get install mtp-tools mtpfs
(2)使用mtp-detect检测设备号信息。形如:

bill@Ubuntu10:~$ mtp-detect
libmtp version: 1.0.2

Listing raw device(s)
Device 0 (VID=18d1 and PID=4e43) is UNKNOWN.
Please report this VID/PID and the device model to the libmtp development team
Found 1 device(s):
18d1:4e43 @ bus 2, dev 11
Attempting to connect device(s)
Error 1: Get Storage information failed.
Error 2: PTP Layer error 02fe: get_all_metadata_fast(): could not get proplist of all objects.
Error 2: (Look this up in ptp.h for an explanation.)
Error 2: PTP Layer error 02fe: get_handles_recursively(): could not get object handles.
Error 2: (Look this up in ptp.h for an explanation.)
USB low-level info:
Using kernel interface “usbfs”
bcdUSB: 512
bDeviceClass: 0
bDeviceSubClass: 0
bDeviceProtocol: 0
idVendor: 18d1
idProduct: 4e43

若没有检测到设备,重启下PC试试。

(3)手工添加udev规则,让ubuntu检测到usb设备插拔时自动采取动作。相信以后的Linux发行版本会添加自动对mtp的支持,不用我们再手动操作了,相当于当年老版本Linux插个u盘或移动硬盘还要我们手工去mount。(注:由于在笔者的Ubuntu10.04上经常不能检测到MTP设备,下面内容未验证,可能不成功)

bill@Ubuntu10:~$ sudo gvim /etc/udev/rules.d/50-nexus7_mtp.rules

SUBSYSTEM==”USB”, ACTION==”add”, ATTR{idVendor}==”18d1″, ATTR{idProduct}==”4e43″, MODE=”0666″, RUN+=”/usr/bin/nexus7_mtp.sh”
SUBSYSTEM==”USB”, ACTION==”remove”, ATTR{idVendor}==”18d1″, ATTR{idProduct}==”4e43″, MODE=”0666″, RUN+=”/usr/bin/nexus7_mtp.sh”

(4)添加规则

bill@Ubuntu10:~$ sudo gvim /usr/bin/nexus7_mtp.sh
bill@Ubuntu10:~$ sudo chmod a+x /usr/bin/nexus7_mtp.sh

/usr/bin/nexus7_mtp.sh文件内容如下:

LOG=/var/log/nexus7_mtp.log
lap=$(date –rfc-3339=ns)
echo “$lap: $DEVPATH requesting $ACTION” >> $LOG
if [ $ACTION == "add" ]
then
sudo mkdir /media/nexus7
sudo chmod 775 /media/nexus7
sudo mtpfs -o allow_other /media/nexus7
elif [ $ACTION == "remove" ]
then
umount -l /media/nexus7
sudo rm -r /media/nexus7 -f
fi

 

顺便提下:MS-Windows XP上的Nexus7的MTP安装:

官方说安装了Windows Media Player 11后即可使用。但存在安装了仍不能使用的情形,我的即是如此。

如何解决呢?搜索了下,需要修改文件c:\windows\inf\wpdmtp.inf:

[Generic.NTx86]

%GenericMTP.DeviceDesc%=MTP, USB\MS_COMP_MTP
%GenericMTP.DeviceDesc%=MTP, USB\VID_18D1&PID_4E42&MI_00
[Generic.NTamd64]
%GenericMTP.DeviceDesc%=MTP, USB\MS_COMP_MTP
%GenericMTP.DeviceDesc%=MTP, USB\VID_18D1&PID_4E42&MI_00

若没有上面红色的行,则添加之;若有,则修改“VID_18D1&PID_4E42”加粗字体,该字体来自Windows的“Device Manager”中的有叹号的MTP设备的“Detail”。修改或添加后,在“Device Manager”中“update Driver”更新驱动即可。另:需确保“开发者选项”(若没有,则在设置多次点击Android版本号)中的USB调试模式被激活。

 

MS-Windows上的MTP驱动:

http://www.microsoft.com/en-us/download/details.aspx?id=19153

参考:http://bbs.gfan.com/android-4688538-1-1.html

本文链接地址: http://blog.redwolf-soft.com/?p=1743

原创文章,版权©红狼博客所有, 转载随意,但请注明出处。

    分享到:

相关文章:

  • 无相关文章
分类: 数码玩家 标签: , ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.
订阅评论
  欢迎参与讨论,请在这里发表您的看法、交流您的观点。