安卓传输文件的一些研究
来源:互联网 发布:未识别的网络不能上网 编辑:程序博客网 时间:2024/05/17 02:26
今天从Youtube上下了一些视频,想传到自己的一部HTC OneX里面。又不高兴用HTC提供的HTC Sync Manager,想自己手动挂载,找/dev半天也没发现可能的目标,一想到一起在Ubuntu里面能够直接自动挂载,故研究了一下。
首先:传输时大致有三种协议 USB Mass Storage,MTP,PTP
从USB Mass Storage开始说吧:
如果用过老的安卓机都知道,我们把设备连上电脑,会需要我们去选择是否当做外部存储,选择是之后,主机中就像插入U盘一样,我们可以直接对存储进行操作。这其实就是通过USB Mass Storage(或UMS)来实现的。
说说这样做的好处吧:我们能操作的可能性比较大,因为获得了执行权限,我们几乎可以进行任何操作,但是弊端更多:
1.使用时需要是存储器完全摆脱OS(android)的管理。
这意味着如果我们当前有应用正读写着存储里面的数据,我们可能就不得不得先关闭这个应用了
2.文件系统必须使用Windows识别的,例FAT
3.有不少的安全隐患
这是老机器了,而现在我们将安卓设备连接到主机上,很多时候我们并不能进行直接的操作,设备对主机以媒体设备形式暴露,这其实就用到了MTP和PTP两种协议。
我们先从PTP协议开始讲起:
PTP:Picture Transfer Protocol。正如它名字暗示的那样,这其实是设计用来给数字照相机和主机通信时使用的协议,使用这种协议的设备和主机进行通信时,我们从主机上看到的情况就是,显示为一个数字照相机。这种情况其实大家在生活中或多或少都遇到过。需要提的是在苹果的OSX操作系统中,默认是支持这种协议的,当然,还有上面的UMS。
最后,讲一下MTP(Media Transfer Protocol)
MTP是基于PTP的,不过它对PTP进行了很多拓展。当我们将使用MTP协议的设备和主机连接时,主机上显示的就是媒体设备了。MTP被设计用来传输音像和数字音乐信息。当使用MTP协议时,主机对存储的操作并不是直接的了。OS(Android)将起到一个类似过滤的功能,当上传或者下载时,系统可以进行判断是否可以放行。和上面两种协议不同的是,OSX默认不支持MTP协议。。。这也就是为什么我的HTC连接到OSX时我不能像U盘一样挂载或者访问手机存储了,当然,Linux支持MTP(通过libmtp),所以Ubuntu中会自己挂载。毕竟是苹果么。。。iDevice设备之间通信也采用了苹果自己的协议,怎么会原生添加对MTP的支持呢~?。当然,OSX中想要访问MTP协议的设备也有方法,应该有很多第三方的软件,但是其实Google就提供了Android File Transfer来实现一个简单的MTP客户端:下载地址
最后总结:
旧设备连接电脑时,当然。。只能选UMS,如果设备支持MTP和PTP。推荐使用MTP
- 安卓传输文件的一些研究
- 关于安卓蓝牙的一些研究
- 安卓签名文件研究
- 安卓手机的视频传输方案的研究(初步)
- Qt PC 安卓 tcp传输文件
- 介绍一些安卓手机的隐藏代码,适合发烧友研究研究
- 安卓客户端和php服务端传输包含中文文件名的文件
- 利用wifi在电脑和安卓手机传输文件
- 【安卓开发】远程文件管理传输协议解析
- oschina客户端安卓研究(三)两个文件缓存的方法
- 一些安卓的问题
- 声波传输信息的研究
- 安卓 网络编程之json的传输和获取
- hashmap 的一些研究
- ViewDragHelper的一些研究
- 安卓的文件存储
- 安卓的apk文件
- 传输流的一些概念
- 线性空间的一些概念
- 未来企业建网站是一种投资绝非摆设
- 一个概率题:54张扑克牌,除去两张大小王剩下52张扑克牌。问红桃A和黑桃A同时被一个人拿到的概率是多少?
- Android动态加载jar、apk的实现
- oozie客户端常用命令
- 安卓传输文件的一些研究
- ASP FSO文件处理函数大全
- 世界上还有什么地方属于年轻人?
- Robotium初学遇到的坑
- 黑马程序员--Java概述
- 图像的灰度共生矩阵GLCM(matlab 函数帮助)
- C++ 获取局域网内所有可用IP和主机名
- 编译原理知识点记录
- 次世代验证码识别系统 学习使用