求问下如何把链接电脑的MTP模式更换为USecb模式式

经验161 米
在线时间7 小时
版本JHACNBL30.0
积分 186, 距离下一级还需 14 积分
积分 186, 距离下一级还需 14 积分
机型红米手机1/1S
MIUI版本JHACNBL30.0
本帖最后由 nightycd 于
15:05 编辑
首先庆祝一下这帖子过千楼百页了。
第二是这问题在MIUI-JHACNBL28.0里依然在,选了MTP后,就没那个再可以选USB模式的地方了,但改进之处是出现了帮助菜单,能指导你安装驱动,驱动本人没装着试,看来制作团队是要推行MTP模式,也许是刻意做成这样的
应用下载地址:
(229.05 KB, 下载次数: 50647)
12:52 上传
点击文件名下载附件
下载积分: 经验 -1 米
(使用说明见下文及2楼)(源代码也有。。。。。。都置顶了)
回复里看到有人把分加给了回复贴,还一次加了2分。。。。。。我想说,能把分加给我么?
老婆的红米1手机最近通过机子自带的系统升级升级成了MIUI-13版的系统。
在原本大容量存储USB模式下,下拉通知栏里原本是有一个“作为USB存储设备使用”的标签的,如下图,点这个可以切换USB作为什么存储设备连接到电脑上的。
MI_259.png (106.52 KB, 下载次数: 652)
而升级后,遇到了一个愚蠢的问题,手机连接电脑时的模式被改成了MTP模式,而电脑是XP系统又认不出红米的MTP驱动。
更愚蠢的是,现在那个切换USB模式的按钮没了。。。
MI_647.png (157.6 KB, 下载次数: 630)
最最愚蠢的是,这个设置菜单在“设置”里也没有,原先在“设置-&存储”里的“USB默认设置”选项也没了。。。
也就是说,如果你手闲,USB模式点了个MTP模式,恭喜你,以后就一直用这个模式吧,没得换了。
针对这个没来头的BUG,我做了一个超小的应用,唯一的功能就是点那个唯一的按钮,然后会进入USB模式切换页面,这样问题应该解决了。。。
补充一句,这个应用要在使用USB线连接电脑以后,通知栏出现USB标志了以后再启动,然后再按那个按钮才有用的,没使用电脑连接手机USB时,按那个按钮没用。。。
分享到微信朋友圈
打开微信,点击底部的“发现”,使用 “扫一扫” 即可将网页分享到我的朋友圈。
已有&83&人评分
感谢分享^_^
感谢分享^_^
助人为乐^_^
感谢分享^_^
助人为乐^_^
助人为乐^_^
助人为乐^_^
MIUI 因你更精彩!
简直不要太棒!
MIUI 因你更精彩!
我也觉得你说的很对
精品文章^_^
真的能用,赞一个
助人为乐^_^
MIUI 因你更精彩!
助人为乐^_^
精品文章^_^
楼主太认真细致了,佩服佩服!.
精品文章^_^
经验&+112&
经验161 米
在线时间7 小时
版本JHACNBL30.0
积分 186, 距离下一级还需 14 积分
积分 186, 距离下一级还需 14 积分
机型红米手机1/1S
MIUI版本JHACNBL30.0
本帖最后由 nightycd 于
16:48 编辑
如此明显、低级的BUG,居然在MIUI-15里也明晃晃的还在,看来我这帖子还能都火一阵子了
先感谢版主帮我加了个隐藏 @Saporz,呵呵,这样回复一下多了N多啊,欣慰。再吐槽一下,居然不能自己加隐藏,还因此不能再次编辑自己的帖子了,只好在2楼来补充说明一下。
再解释一下,这个应用只是为了临时解决这个BUG做的,期待下次MIUI更新把这个100%重现的BUG改掉。
至于评价为什么不在XP上安装MTP驱动,这个我要说XP上安装MTP驱动很搞,当初我为了给Nexus连接电脑就搞了半夜,更何况红米的MTP驱动似乎还不是通用的,还得重新来过还不一定能出来,很烦人。
对应用的使用说明,本以为应用简单到没别的功能,应该不用说的,没想到好几个人说不能用或不会用,只好截图说明一下。
1.使用USB线将手机连接到电脑上,注意,这步一定先做,此时下拉通知栏里应该出现USB相关信息
Screenshot_-09-06-46.png (33.32 KB, 下载次数: 362)
2.启动应用,点击里面的“USB模式设定”
Screenshot_-09-06-57.png (91.14 KB, 下载次数: 412)
&&-----&&&& &
Screenshot_-09-07-02.png (15.35 KB, 下载次数: 393)
3.进入USB模式切换页面,好了,你可以在这里面切换了。注意,如果你第1步没做,这里点击“USB模式设定”肯定是没有任何反应的,必须先做第1步,这个是Android它自己的机制,我可没法改
调出这个界面就是这个小应用的最终目的和作用,你的MIUI上本来有什么就会显示什么。
后面有位兄弟贴出了电信版的界面,只有两个选项,这个我也没办法了,它本来就这么多我也没法子给增加出来,电信版的兄弟们,帮你们默哀了
Screenshot_-09-07-05.png (39.66 KB, 下载次数: 333)
& && && && &&&----》》电信版
143944xpnhpphfph6o666q.png.thumb.jpg (119.1 KB, 下载次数: 348)
已有&2&人评分
MIUI 因你更精彩!
助人为乐^_^
经验161 米
在线时间7 小时
版本JHACNBL30.0
积分 186, 距离下一级还需 14 积分
积分 186, 距离下一级还需 14 积分
机型红米手机1/1S
MIUI版本JHACNBL30.0
楼下是电信版不能用的真正原因,电信版本来就只有俩选项
本帖最后由 nightycd 于
21:57 编辑
楼下是电信版不能用的真正原因,电信版本来就只有俩选项
已有&1&人评分
楼主真乃神人也..应该去甩miui团队几巴掌,.
在线时间3 小时
积分 30, 距离下一级还需 20 积分
积分 30, 距离下一级还需 20 积分
机型红米手机1S WCDMA 3G版
MIUI版本5.4.8
我刚刚用我的电信版试了下,没有USB存储设备跟,仅充电这2个选项,这BUG真心恶心
(120.58 KB, 下载次数: 63)
14:39 上传
经验161 米
在线时间7 小时
版本JHACNBL30.0
积分 186, 距离下一级还需 14 积分
积分 186, 距离下一级还需 14 积分
机型红米手机1/1S
MIUI版本JHACNBL30.0
我刚刚用我的电信版试了下,没有USB存储设备跟,仅充电这2个选项,这BUG真心恶心 ...
我的应用的功能就是调用出这个“USB计算机连接”的界面啊,看来电信版本来就没这个选项,那我可就没得办法了
经验5865 米
在线时间54 小时
积分 5930, 距离下一级还需 14070 积分
积分 5930, 距离下一级还需 14070 积分
机型小米手机5X
签到次数106
MIUI版本8.1.4
楼主,你代码掉了:
Intent intent = new Intent();
ComponentName comp = new ComponentName(&com.android.settings&, &com.android.settings.UsbSettings&);
intent.setComponent(comp);
intent.setAction(&android.intent.action.VIEW&);
startActivityForResult(intent, 0);
经验453 米
在线时间30 小时
版本JHACNBH26.0
积分 552, 距离下一级还需 1448 积分
积分 552, 距离下一级还需 1448 积分
机型红米手机 TD版
MIUI版本JHACNBH26.0
哥们你做的小软件啊,好屌,给跪了
经验11865 米
在线时间355 小时
版本8.4.26
积分 12099, 距离下一级还需 7901 积分
积分 12099, 距离下一级还需 7901 积分
机型红米Note2 移动/标准
签到次数75
MIUI版本8.4.26
感謝樓主分享,使大家操作上能更方便
经验161 米
在线时间7 小时
版本JHACNBL30.0
积分 186, 距离下一级还需 14 积分
积分 186, 距离下一级还需 14 积分
机型红米手机1/1S
MIUI版本JHACNBL30.0
本帖最后由 nightycd 于
21:20 编辑
@Saporz& &
版主给置个顶加个精么,翻了一下,似乎MIUI-13版里受这个问题困扰的人不少啊,我这个方法一不用Root,二不用开Boot.img,完全绿色安全,还完全原创,应该值得加精置顶啊
经验760 米
在线时间57 小时
版本V9.2.3.0.KHCCNEK
积分 864, 距离下一级还需 1136 积分
积分 864, 距离下一级还需 1136 积分
签到次数36
MIUI版本V9.2.3.0.KHCCNEK
貌似电信的红米不行,求其他测试
经验161 米
在线时间7 小时
版本JHACNBL30.0
积分 186, 距离下一级还需 14 积分
积分 186, 距离下一级还需 14 积分
机型红米手机1/1S
MIUI版本JHACNBL30.0
貌似电信的红米不行,求其他测试
你连接USB线了没?
这个应用要在使用USB线连接电脑以后,通知栏出现USB标志了以后再启动,然后再按那个按钮才有用的。
说起来我和我老婆的手机都是移动的,还真没法测试电信的。。。。。。
但是我只是调用了MIUI自己的USB设置页面,这个应该和电信还是移动的没关系的呀
经验2542 米
在线时间70 小时
积分 3229, 距离下一级还需 1771 积分
积分 3229, 距离下一级还需 1771 积分
机型红米手机1S WCDMA 3G版
签到次数39
MIUI版本5.7.9
顶一个,。。。。。
经验512 米
在线时间108 小时
版本JHBTWBD16.0
积分 946, 距离下一级还需 1054 积分
积分 946, 距离下一级还需 1054 积分
机型红米手机1/1S
MIUI版本JHBTWBD16.0
造福各位机油, 值得嘉许
MIUI 10专属勋章
参加回帖活动
2018新年勋章
参与回帖活动
2017圣诞节勋章
参与回帖活动
感恩节勋章
参与回帖活动
“澎湃S1 ”芯片纪念勋章
参与活动回帖可得
参与红米Note 4X活动
MIUI 7纪念勋章
已关注微信
关注腾讯微博
已关注腾讯微博
关注新浪微博
已关注新浪微博
MIUI 9纪念勋章
APP 1000万
MIUI论坛APP注册用户突破1000万纪念勋章
MIUI 300周
MIUI 300周更新纪念勋章
MIUI五周年
MIUI五周年纪念勋章
MIUI六周年
MIUI六周年纪念勋章
小米5发布会
参加小米5发布会直播页大转盘抽奖获得
已关注极客秀微信
Copyright (C) 2017 MIUI
京ICP备号 | 京公网安备34号 | 京ICP证110507号怎么样将和电脑连接MTP设置为USB大容量_百度知道
怎么样将和电脑连接MTP设置为USB大容量
我有更好的答案
首先我们需要下载一个软件到手机上安装——QuickShortcutMaker V2.3.0下载完后点击安装——打开打开QuickShortcutMaker V2.3.0后在搜索栏输入USB——搜索出设置选项——点击设置在接着出现的选项中选择最下面的那个这时候弹跳出编辑快捷方式窗口,点击设置修改想要创建的快捷方式名称小编这里修改成MTP名称,点击确认即可,这时候在手机上就多出一个“MTP”快捷方式,点击打开小编测试用的手机默认是USB模式,所以打开后显示只有MTP选项,点击即可由USB模式转换到MTP模式,如果默认是MTP模式则会出现USB选项下面便是小编切换模式前后在电脑上的显示,创建的快捷键后可以删除软件不影响正常的使用,以后每次切换只需要点击快捷方式即可
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。MTP模式与USB存储模式(MTP in Android)
MTP in Android
MTP的全称是Media Transfer Protocol(媒体传输协议),它是微软公司提出的一套媒体文件传输协议。Android从3.0开始支持MTP。不过,在今天的智能手机领域内,Google和微软是一对冤家,为什么Android中会使用MTP呢?请看下文。
背景知识介绍
笔者相信《程序员》杂志的绝大多数读者或多或少都使用过MTP。因为早在智能手机普及前,数码相机和MP3播放器等都使用了MTP的前身PTP(Picture
Transfer Protocol)进行媒体文件传输。那时,只要通过USB数据线把它们连接上Windows操作系统,就能在“我的电脑“中见到这些设备了。此后,用户可以把它们当做U盘一样使用,例如对其进行目录、文件的浏览和拷贝等操作。
既然可以通过MTP把智能设备当作U盘使用,那么它和我们常用的USB大容量存储(USB
Mass Storage,简称UMS)有何不同呢?
UMS模式下,PC操作存储设备的粒度是设备块(FAT block),而非文件系统。什么意思?此处举一个简单例子。当Android手机通过UMS将sdcard挂载到PC后,PC就拥有对sdcard的绝对控制权。这样,手机就无法同时访问sdcard了。这种做法带来的后果就是Camera或Music程序将因没有外部存储空间而提示无法进行操作(注意,有些厂商的手机对此进行过修改,使得Camera能短时间录制一部分视频到内部存储空间)。这也是Android早期版本中一个很明显的特点。另外,由于PC在操作sdcard时可能弄坏其文件系统,这将导致sdcard重新挂载到手机后不能被识别。
如果Android手机的sdcard以MTP模式挂载到PC机上,sdcard的控制权其实还是属于手机。只不过智能手机通过MTP协议向PC机构建了一个虚拟文件系统。PC机操作其中的文件时,都会通过标准MTP协议向智能手机发起请求。另外,Android把MTP功能集成在MediaProvider[1]中,其好处是PC机操作(例如拷贝或删除等)媒体文件时,媒体数据都会及时更新到媒体数据库中。而UMS模式下,当sdcard挂载回手机后,Android还得花较长时间重新扫描媒体文件以更新媒体数据库。
MTP的好处还有很多,例如它可判断PC机拷贝的媒体文件是否受目标手机支持,甚至可以触发对应的转码程序将其转换成手机支持的格式。不过和UMS相比,MTP也有不足之处:
传输大文件的速度较慢。
MTP不能直接修改文件本身。只能先拷贝到本地修改,完毕后再拷贝回去。
除了Windows外,Linux和MacOS对MTP支持还不是很完善。
下面我们将介绍MTP协议。
1.1 MTP协议介绍
根据协议,MTP的使用者包括两个部分,分别是Initiator和Responder。如图1-1所示:
图1-1 Initiator和Responder图示
由图1-1可知:
Initiator:主要是指USB Host,例如PC机,笔记本等。协议规定所有MTP操作只能由Initator发起。
Responder:一般是诸如数码相机、智能手机等存储媒体文件的设备。Responder在MTP中的作用就是处理Initator发起的请求。同时,它还会根据自身状态的变化发送Event以通知Initiator。
注意:后文我们将统一以PC代表Initiator,Android手机代表Responder。
与很多协议一样,MTP也有自己的协议栈,如图1-2所示:
图1-2 MTP协议栈
由图1-2可知,MTP协议栈由下到上分别是:
Pyshical Layer(物理层):物理层在MTP协议中用来传输数据。目前有三种物理层可供MTP使用。它们分别是USB:其主要特点是传输文件,同步媒体文件时速度快,而且可以边工作边充电,这是目前用的最多的一种方式;IP:基于IP的MTP(简称MTP/IP)将通过UPnP来匹配和发现设备。它是家庭网络中是最理想的传输方式;Bluetooth:MTP/BT是最省电,同时也是速度最慢的一种传输方式,用处较少。
传输层:MTP中,数据传输格式遵循PTP协议
命令层:实现了MTP协议中的各种命令。
如上文所述,MTP采用命令-应答方式来工作(Initator发送命令给Responder处理,Responser反馈处理结果),这种方式的主要特点有:
所有MTP命令均以Package(数据包)的方式在设备两端进行传递。
Initiator必须接收到前一条消息的处理结果(不论是成功还是超时)后,才能发送下一条消息。
下面我们将以PC通过MTP打开一个文件为例,按顺序介绍其中涉及到几个主要MTP命令:
当设备第一次连接上PC后,Initiator(即PC)首先会发送一个名为GetDeviceInfo的请求以获取设备的信息,这些信息包括设备所支持PTP版本的程度,以百分号表示(默认是100)、所支持的MTP命令(Operation Supported)、所支持的Event类型等。
接着PC端会发送OpenSession命令以创建一个会话,该会话一直保持到设备从PC上断开为止。此后所有命令(除GetDeviceInfo命令外)必须在此会话存活期间才能发送。会话在MTP协议中由SessionID来标识,它是一个32位的无符号整型,由PC选择并传给手机。
PC端如果要进行文件操作的话,必须从根目录开始定位目标文件。由于Windows的特殊性,手机内部存储卡在windows系统中显示为盘符。注意,如果手机内部有两块存储卡的话(如内部存储卡和外部sd卡),Windows中会显示为两个盘符。PC端需要通过GetStorageIDs命令返回某个盘符对应的StorageID。在MTP中,StorageID是一个32位无符号整型,每一个StorageID代表了一个逻辑盘符。
PC端可以根据上一步的StorageID号,利用GetStorageInfo操作去获取存储设备的信息,例如剩余存储空间、文件系统类型、访问权限等。
接着,PC就会通过GetObjectHandles命令来获取此盘符下的文件和子目录的Object Handles(一个Object Handle代表一个文件或目录。该值由Responder生成并保证唯一性)。有了Object Handle,PC就可以操作这些文件或目录了,例如继续通过GetObjectHandles获取某个目录中子文件和子目录的信息。
假设现在需拷贝一个文件到手机上,那么PC会通过SendObjectInfo命令将文件信息(如文件名、文件大小)等传递给手机。而手机需要检查目标目录是否有足够的空间和对应权限。
如果一切正常,PC将通过SendObject把数据传递给手机。真正写文件到设备存储空间的则是手机中的Responder。Android实现的MTP还会在媒体文件传输完毕后,将信息更新到媒体数据库中。
除此之外,PC还可利用SetObjectPropValue 命令来设置文件的各种属性值,如Audio BitRate(比特率),Sample Rate(采样率),Number Of Channels(声道)等。
以上为读者描述了MTP使用的一个简单案例。至于其中的各种MTP命令,读者不妨阅读参考文献1,即《MTP
Specification v1.0.pdf》。协议对各种命令都有非常精确的描述,例如表1-1,表1-2所示为GetDeviceInfo命令,返回值定义。其参数类型,传递方向都有详细解释(不得不说,和Linux比起来,微软的开发/技术文档做得相当到位)。
表1-1 GetDeviceInfo命令定义
Operation Code
GetDeviceInfo对应命令的数字编号是0x1001
DeviceInfo dataset
手机端返回的设备信息数据集
Data Direction
数据传输方向是手机到PC
ResponseCode Options
OK, Parameter_Not_Supported
手机给PC的返回值
表1-2所示为GetDeviceInfo的返回数据集的定义。
表1-2 GetDeviceInfo返回数据集的定义
Dataset field
Field order
Size (bytes)
Standard Version
手机对PTP协议的支持程度,以%表示,默认是100
MTP Vendor Extension ID
手机对PTP厂商扩展协议的支持,默认是0xFFFFFFFF
MTP Version
手机支持的MTP标准的版本,以%表示
MTP Extensions
手机支持的MTP扩展集
Functional Mode
手机允许的模式
Operations Supported
Operation Code Array
在当前功能模式下,手机支持的所有操作
Event Supported
Event Code Array
在当前功能模式下,手机能产生的所有事件
Device Properties Supported
Device Property Code Array
在当前功能模式下,手机支持的所有设备属性
Capture Formats
Object Format Code Array
手机可以自己生成的文件格式,不包括拷贝到手机上文件格式
Playback Formats
Object Format Code Array
手机可以解析和理解的所有格式类型
Manufacturer
人可读的手机制造商的标识
人可读的手机型号
Device Version
手机的软件或固件版本
Serial Number
能标明手机MTP功能的唯一序列号
1.2 OS对MTP的支持及认证
MTP协议既然由微软提出,理所当然,Windows对其支持自然是不遗余力。目前Windows操作系统中,MTP和多媒体框架紧密结合,并且已经成为Windows
Media框架中的重要一部分。如WMP10(Windows Media Player 10)和WMP11均内置对MTP功能,其中WMP11还新增对Playlist和Album art的支持。
微软除了提出MTP协议并在Windows操作系统中提供大力支持外,它对使用MTP协议的设备也有所管理。所有标称支持MTP协议的设备,必须通过微软的测试WLK(Windows
Logo Kit)。WLK测试通过的设备可以获得一个徽标。关于WLK测试的详细信息,请读者参考http://msdn.microsoft.com/zh-cn/library/windows/hardware/gg487530.aspx。从以上链接中也能下载到wpdmon,它是MTP开发中最常用的测试工具,可显示出所有PC与手机进行MTP操作时发送的命令、数据及返回值。图1-3为笔者测试某台Android手机的MTP功能时用wpdmon截获的信息示意图:
图1-3 wpdmon工具使用示意图
下面我们来看MTP在Android平****的实现。
Android中的MTP
Android从3.0开始集成MTP功能,主要原因有三个:
手机要支持UMS的话,必须有一个sd卡,因为sd卡往往采用Windows支持的分区格式。如果想把内部存储空间通过UMS挂载到Windows上,则内部存储空间需采用特定的分区格式。这对某些手机而言根本不可行。因为内部存储空间本身可能是一个设备,它们采用统一的分区格式。不能因为需要使用UMS,而再增加一块特定分区格式的存储设备。
UMS挂载到PC后,PC操作系统拥有绝对控制权。此时,Android系统将无法操作这些设备。根据前文举的Camera例子而言,这对越来越高级的Android版本而言是不可接受的。
另外一个不可忽略的事实就是Windows操作系统在普通劳动人民那儿依然占据极高的市场份额。这恐怕也是明知Linux、MacOS对MTP支持力度不够,Android也要集成它的一个重要原因吧。2.1 Android中MTP的代码架构
要使用MTP功能,首先需要在设置中启用USB连接模式为MTP,如图1-4所示:
图1-4 Settings中的MTP设置
图1-4所示为参考机(Android 4.1版本)中“USB连接模式”设置。该操作实际上会触发USB驱动做相应变动。本文不拟讨论其中的过程,读者可参考手机中init.platform-name.usb.rc文件以查看Android系统中USB的模式设置。从目前市面上发布的数款Android
4.0及后续版本的机型来看,MTP/PTP大有取代UMS的趋势。
根据前文所述,Android中的MTP和已有的MediaProvider模块结合紧密,以更好体现“Media
Transfer”的特性。其主要结构如图1-5所示:
图1-5 Android MTP架构图
由图1-5可知,Android MTP架构由下到上分别是:
C++层包括几个主要对象,如MtpRequestPacke负责从USB驱动读取数据,并结构化命令格式及其参数、MtpDataPacket负责结构化手机要返回给PC的数据包、MtpResponsePacket负责结构化手机要给PC返回的response。MtpServer负责解析来自PC的命令并调用相应的接口函数进行处理。
Java层包括UsbReceiver、MtpService、MtpServer等对象。其中UsbReceiver用来监视USB事件,判断何时启动或停止MtpService。MtpService负责启动MtpServer和加载存储设备的信息到数据库。MtpServer负责通过jni接口去启动/停止C++层中MtpServer以及处理Storage的添加和删除。MediaProvider则负责查询和更新数据库。MtpDatabase名字虽然叫Database,但实际功能用于在MediaProvider和MtpServer之间转换数据格式。例如把MTP传递过来的信息(如文件大小、文件路径等)转换成MediaProvider需要的格式以方便其更新数据库。
下面我们来看MTP的工作流程。
2.2 MTP流程分析
我们先来看MTP模块启动的流程,如图1-6所示:
图1-6 MTP主要模块启动流程
由图1-6可知:
当手机连上usb线后,UsbReceiver会收到来自系统的USB_STATE广播事件。接着它需要从UsbManager中查询USB的链接状态,MTP的设置信息和PTP的设置信息。当用户设置为使用MTP模式时,UsbReceiver将通过startService函数启动MtpService。
MtpService启动,在其onStartCommand中将创建MtpDatabase对象和MtpServer对象。
UsbReceiver同时通过insert一条特殊uri(值为“content://media/none/mtp_connected”)的方式,触发MdiaProvder调用MtpService的bindService函数。这样,MediaProvider和MtpService就建立了紧密联系。
MtpServer是Android平****MTP协议处理的核心模块,它会单独启动一个线程用于接收PC端的命令,其代码如图1-7所示:
图1-7 MtpServer run函数代码片段
由图1-7可知,MtpServer不断从文件描述符读取请求,然后调用handleRequest进行处理。最后把处理结果返回给对端。
从这段代码读者可以发现,Android MTP命令层和物理层之间的耦合度较低,这样也方便将来实现MTP/IP功能。
接下来我们看看PC端发送SendObjectInfo的处理流程,如图1-8所示:
图1-8 sendObjectInfo处理流程图
由图1-8可知SendObjectInfo的处理流程大体步骤如下:
PC发SendObjectInfo命令给MtpServer。MtpServer需要检查存储设备剩余空间、可支持的最大文件大小。如果一切正常的话,它会通过MediaProvider的insert函数往媒体数据库中加入一条数据项。
接着PC通过SendObject将文件内容传递给给MtpServer。而MtpServer就会创建该文件,并把数据写到文件中。
当文件数据发送完毕,MtpServer调用endSendObject。而endObject则会触发MediaScanner进行媒体文件扫描。当然,扫描完后,该文件携带的媒体信息(假如是MP3文件的话,则会把专辑信息、歌手、流派、长度等内容)加入到媒体数据库中。
通过对SendObjectInfo描述,我们也可看出,Android充分利用了其平台本身的特性,真正将媒体传输协议和媒体文件扫描恰到好处得结合起来,从而发挥了MTP最大功效。
本文主要对Android中的MTP进行了相关介绍。虽然MTP协议由微软提供,但因为历史原因,其使用程度相当广泛,以至于Android也提供了最基本的MTP实现。
当然,如果要做到真正实用并通过微软认证,手机厂商还需要在此基础上做进一步的开发。结合笔者自己的使用经历,国外大牌手机厂商例如Sony、Samsung、Nokia等对MTP的支持相当到位。相比而言,国内手机厂商的起步稍微晚一点,需要投入更多的精力才能超越。另外,随着无线技术的普及,MTP基于IP的实现也将极大方面用户的使用。笔者在此希望大家能一起努力,早日让用户从USB数据线中解放出来。
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!连接电脑,如何将MTP改USB模式?_百度知道
连接电脑,如何将MTP改USB模式?
i9300的手机,USB连接的选项只有两个,一个是MTP另一个是作为摄像头,请问怎么改成USB模式呢?
我有更好的答案
方法:用RE管理器在data/property/里放入附件的persist.sys.usb.config更改权限为r_w,就是所有者,只选取读写两项,与其他文件权限一致。然后重启手机,之后手机的存储方式都是USB大容量存储。
采纳率:60%
打开手机系统设置——开发者选项,勾选USB模式即可。  Media Transfer Protocol,媒体传输协议,是基于PTP(Picture Transfer Protocol)协议的扩展,主要用于传输媒体文件,其中有价值的应用就是同步DRM文件的license。  USB调试模式是 Android 提供的一个用于开发工作的功能,使用该功能可在计算机和 Android 设备之间复制数据、在移动设备上安装应用程序、读取日志数据等等。默认情况下,USB 调试模式是关闭的,所以需要手动打开它;USB调试用途广泛,各种手机助手软件行使正常功能必须开启USB调试模式才能正常使用。只有开启了USB调试模式,与电脑连接时才能进行下载软件,一键root,备份联系人等功能。
根据您的疑问,I9300连接电脑,您可按照以下方法操作:您到三星官网下载PC套件samsung kies。下载地址:(选择电脑系统版本)如果已经升级到安卓4.3及以上系统,您需要下载【Kies3】版本将KIES/KIES3软件安装到电脑上,并且关闭手机USB调试,通过数据线连接电脑即可,注:若您电脑为XP系统需要升级SP3版本,安装Windows Media Player 10 以上版本,连接时请将杀毒软件防火墙关闭。(建议您使用WIN7操作系统)若依旧无法连接成功:1.确定手机已关闭usb调试功能2.更换电脑USB接口,台式机建议用主机后面的USB端口3.关闭电脑中的杀毒软件或防火墙尝试。4.有可能跟电脑系统兼容程序有关,也可更换其他电脑尝试连接。5.更换数据线尝试6.如果问题依旧 ,建议您送修检测一下手机
安装了kies,只要打开kies并关闭USB调试,连接的时候自动就是USB模式吗?
需要关闭USB调试模式
本回答被网友采纳
1条折叠回答
为您推荐:
其他类似问题
mtp的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 连接模式 的文章

 

随机推荐