MTP的全称是Media Transfer Protocol(媒体传输协议),它是微软公司提出的一套媒体文件传输协议.早在智能手机普及前,数码相机和MP3播放器等都使用了MTP的前身PTP(Picture Transfer Protocol)进行媒体文件传输,Android从3.0开始支持MTP. (1)既然可以通过MTP把智能设备当作U盘使用,那么它和我们常用的USB大容量存储(USB Mass Storage,简称UMS)有何不同呢? UMS模式下,PC操作存储设备的粒度是设备块(FAT b…
本文转载自:https://blog.csdn.net/kc58236582/article/details/46895901 废话少说, 先上两张时序图 , 图片有点大, 建议用新窗口打开或者另存到本地查看 图1: UsbSettings的流程 图2: property属性的触发事件流程 好, 开始分析 从图1开始, 当用户从Setting UI里面点了一下那个MTP的选择框后,引起一系列的操作, 说白了,这里绕那么多个圈, 无非就是想发个消息通知UsbHandler而已, 然后就等待状态更新…
USB的协议其实是很复杂的,如果要深入学习估计要一两年才能熟悉透.本文主要是讲如何使用官方已经写好的库进行二次开发,以达到我们自己使用的目的.我们知道USB可以用来接U盘,声卡,读卡器,鼠标键盘等等,这里主要是讲USB接口用来当虚拟串口使用,这个VCP(虚拟串口)是通过USB的CDC(通信设备类)类来实现的,本文是基于CPU是STM32F4的USB来讲解的: 1.安装和使用STM32 CubeMx软件: 该软件是STM官方提供的图形化配置底层驱动的软件,可生成工程与代码,可去官方下载安装: 1)…
在硬件交互的首篇对设备硬件的分类中,互联通信系列硬件主要用来与其他设备进行数据交互.从本文开始,将重点介绍该系列相关硬件. 互联通信系列硬件 根据硬件的可通信距离,由近及远分为USB.NFC.蓝牙.WLAN,SIM卡槽,这些硬件之间的功能原理及关系可以查找其他资料详细学习.总之,他们为当前设备与其他设备的交互搭建了桥梁,只要双方设备均遵循该系列硬件的协议,就可以在硬件层互相通信,而设备上的Android操作系统便会将硬件层的数据转换为应用层数据,进而与应用程序交互.这样也就实现了两个不同设备上的…
上位机:ubuntu14.04 64bit 下位机:qq2440 交叉编译器:arm-linux-gcc 3.4.1 下位机使用的linux内核版本:kernel2.6.13 1.插入u盘时错误信息如下: [root@FriendlyARM /home]# usb 1-1: new full speed USB device using s3c2410-ohci and address 6usb 1-1: device descriptor read/64, error -110usb 1-1:…
本文为CoryXie原创译文,转载及有任何问题请联系cory.xie#gmail.com. 本章呈现USB 3.0体系结构和关键概念的概览.USB 3.0与前面版本的USB类似,因为它是线缆总线,支持在主机计算机和广大范围的可同时访问的外围设备之间进行数据交换.所附着的设备通过主机调度协议来共享带宽.总线允许设备在主机和其他外设的操作过程中被挂上(attached),配置(configured),使用(used),以及拔出(detached).USB 3.0使用双总线架构(dual-bus ar…
STM32F4 USB Composite CDC + MSC I'm in the process of building a USB composite CDC + MSC device on the STM32F4 Discovery board but am having trouble getting windows to recognise it. Using USBlyzer all the descriptor info seems ok but windows will onl…
Android USB Connections Explained: MTP, PTP, and USB Mass Storage Older Android devices support USB mass storage for transferring files back and forth with a computer. Modern Android devices use the MTP or PTP protocols — you can choose which one you…
Android USB驱动中,上层应用协议里最重要的一个文件是android/kernel/drivers/usb/gadget/android.c.这个文件实现USB的上层应用协议. 首先包含了一些系统级别的头文件,如模块.电源管理.of API等 /* * Gadget Driver for Android * * Copyright (C) 2008 Google, Inc. *.Copyright (c) 2014, The Linux Foundation. All rights re…
前言       今年的又准时乖巧的观看了315晚会,与大家一同学习了各种发财致富的方式...咳.咳..学习防范违法行骗的各种手段.比较感兴趣的两个,一人脸识别,二公共充电桩安全隐患.第一个今天不扯,第二个问题虽是炒冷饭,但咱也炒炒冷饭,就说说这,搞安卓开发哥们如果你给他USB调试权限,分分钟玩到小白你怀疑人生,特别是那些搞手机助手的同学,当然最牛还属搞安全的兄弟.此篇非高深.非深奥,简单讲讲怎么被攻击,然后怎么规避风险. 一.事件回顾 2017年315晚会,在公共免费充电桩的场所做了个实验,对…
想必大家经常在PC和Android之间传输文件,并不是每次都会插USB接口进行文件传输,就算是插上USB接口,还是有个问题,那就是Android打开大容量存储模式之后,经常很多软件就会被强制停止使用,而且在弹出设备之后,一些启动器就会把原来归好类的图标变得乱七八糟,之前放在建立好的文件夹里面的APP全跑到文件夹外面来了,这次就是要解决这两个问题. WIFI建立FTP服务器可能很多人都会说,这个谁不会啊,很多软件都带了,确实,但是在使用中我发现有一些问题.比如说Solid Explorer和ES…
Android USB 模式简介 设备模式 当计算机或其他USB主机需要连接安卓设备时,此时安卓设备是作为"USB设备"角色的,在计算机上显示为 USB 外设.现在的安卓设备已经被赋予了愈加丰富的功能,如MTP相机模式.文件传输模式(类似于U盘).RNDIS网卡模式等.当使用普通手机数据线连接安卓手机和电脑就可以使用这些功能. 主机模式 Android 设备充当USB主机,安卓此时充当类似于计算机PC的角色,可以连接键盘.鼠标.U盘以及嵌入式应用USB转串口.转I2C等设备.注意,此时…
现代嵌入式系统中,异步串行通信接口往往作为标准外设出现在单片机和嵌入式系统中.但是随着个人计算机通用外围设备越来越少地使用串口,串口正在逐渐从个人计算机特别是便携式电脑上消失.于是嵌入式开发人员常常发现自己新买来的计算机上没有串口,或者出现调试现场用户的计算机没有串口的尴尬局面.相反,现在的个人计算机普遍拥有4个以上的USB接口,能不能使用USB接口代替串口,完成PC机和嵌入式系统的通信呢? 1.USB虚拟串口代替物理串口的可行性  首先,越来越多带USB接口的器件涌现出来,如带USB接口的单片…
翻译Android USB HOST API 源代码地址:http://developer.android.com/guide/topics/connectivity/usb/host.html 译者注:翻译的好不好不是太重要,重点是在翻译的过程中会把每句话都看认真看一遍,或者说是抱着翻译的思想来完毕一个读懂的目的. USB Host通信 当你的可供电Android设备处理USB host模式时,它担任着为USB总线供电,枚举连接的USB从设备等等一个主设备应用的工作. Android 3.1及…
背景 在 Linux-3.8 以后,Android 的内核分支,便去掉了 f_adb,改使用 USB function FS,在用户空间实现 USB adb 功能.这篇文章依据原作者的 Google+ 文章,在 Atmel sama5 开发板上做了測试,将步骤记录例如以下,供须要使用的读者參考,你也能够查看作者原文:https://plus.google.com/111524780435806926688/posts/AaEccFjKNHE 在 Linux-3.10 上使能 USB ADB 编译…
作为一名Android技术宅,USB OTG是你必须了解的,所谓USB OTG就是你可以利用手机或平板上用来充电.与电脑传输数据的micro USB接口来连接其他USB外设,如游戏手柄.鼠标.键盘.U盘甚至移动硬盘(当然你需要额外供电).而一条USB OTG数据线也就是必备的工具了. 成品效果 目前关于能否兼容何种USB外设,以及是否需要root你的Android设备并没有一个明确的标准,不过一般情况下“标准”的Android设备如果没经过root的话是无法挂载USB外设的.只有运行Ice Cr…
USBBroadcastReceiver.java package com.example.communication; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.widget.Toast; public class USBBroadcastReceiver extends BroadcastRece…
USB Host When your Android-powered device is in USB host mode, it acts as the USB host, powers the bus, and enumerates connected USB devices. USB host mode is supported in Android 3.1 and higher. 当您的Android设备处于USB主机模式时,它充当USB主机,为总线供电,并枚举连接的USB设备.Andr…
Android 下的usb框架及功能点:https://blog.csdn.net/tianruxishui/article/details/379029591.Android framework中****Manager.java是给用户提供的接口.UsbDeviceManager.java:主要完成功能切换及状态的更新,需要向外广播状态,接收kernel发送过来的event信息.实质性的工作都在这里边完成.UsbManager.java:usbService.java:用户会通过usbMana…
http://blog.csdn.net/kevinx_xu/article/details/12951131 需求:USB Headset插上去后,声音要从本地CODEC切换到USB Headset输出/输入. 上网搜了有关USB Audio Hotplug的东西,比较适用的资源如下: 1.Hotplugging USB audio devices (Howto) 题目看起来很吻合我们的问题,事实上并没有多少参考价值.其中脚本/etc/hotplug/usb/extigy或许可以捕捉到USB…
之前做了一个关于Android USB通信的Case,通过Android的USB总线给Zigbee供电,和板载的Zigbee(基于Zigbee的自组网)进行通信.要使用Android的USB Host功能,首先你需要确定你的平板(手机)设备是否支持USB Host的功能,你可以从手机开发商的简介里面看到,这个功能是由CPU直接关联的,和软件没有关系,所以,你可以把你的外设模块插进去你的Android设备看看有没有反应(比如:指示灯亮),假如没有反应,那肯定是不支持的. 废话说了那么多了,进入正题…
零 USB背景知识 USB是一种数据通信方式,也是一种数据总线,而且是最复杂的总线之一. 硬件上,它是用插头连接.一边是公头(plug),一边是母头(receptacle).例如,PC上的插座就是母头,USB设备使用公头与PC连接. 目前USB硬件接口分三种,普通PC上使用的叫Type:原来诺基亚功能机时代的接口为Mini USB:目前Android手机使用的Micro USB. Host USB是由Host端控制整个总线的数据传输的.单个USB总线上,只能有一个Host. OTG On The…
原文:http://android.eoe.cn/topic/android_sdk USB配件模式允许用户连接那些专门搭载Android设备的USB主机硬件.这些配件必须遵守Android配件开发工具包文档中所列出的Android附件协议.这使得搭载Android系统的设备在不充当USB主机的情况之下,仍然可以和USB硬件进行交互.当一台搭载Android系统的设备处于USB配件模式时,所依附的Android USB配件作为主机为USB总线提供能源以及列举出相连的设备.Android3.1(A…
1,USB存储设备(如:U盘,移动硬盘): //USB存储设备 插拔监听与 SD卡插拔监听一致. private USBBroadCastReceiver mBroadcastReceiver; IntentFilter iFilter = new IntentFilter();       iFilter.addAction(Intent.ACTION_MEDIA_EJECT);       iFilter.addAction(Intent.ACTION_MEDIA_MOUNTED);   …
来源:http://www.bverhue.nl/g2dev/?p=65 Delphi Android USB Interface with the G2 Leave a reply I first tried to use Libusb to connect my Android tablet with the G2. I managed to compile the libusb sources for Android and call it from the application, on…
[转载请注明出处] 首先介绍一个概念:USB Host and Accessory Android通过两种模式支持一系列的USB外围设备和Android USB附件(实现了Android附件协议的硬件设备):USB从设备模式和USB主设备模式,在USB从设备模式下,外围的USB硬件设备作为USB主设备,从设备模式的例子包括扩展坞,读卡器等等.这使得Android设备不具备和USB硬件主动交流的能力,Android USB附件必须遵循Android附件交流协议.在USB主设备模式下,Android…
Android 查看 无wifi/usb设备的logcat方法 一.情况 一个定制Android设备,wifi被去掉.我须要调试一个USB设备这样也无法用usb来输出logcat. 由于这个USB设备须要内核驱动支持,因此无法在其他设备调试. 因此有的方法有,一般想到用蓝牙输出logcat,但这是Android wear 才支持的特性. 在代码中增加捕获错误和异常代码.写入sd卡,这个工作量较大.并且麻烦 二.简单的解决的方法 1.安装Android Terminal 软件. 一个可用链接是 h…
好久没有写文章了,年前公司新开了一个项目,是和usb转串口通信相关的,需求是用安卓平板通过usb转接后与好几个外设进行通信.一直忙到近期,才慢慢闲下来,趁着这个周末不忙.记录下usb转串口通信开发的基本流程. 我们开发使用的是usb主机模式,即:安卓平板作为主机,usb外设作为从机进行数据通信. 整个开发流程能够总结为下面几点: 1.发现设备 UsbManager usbManager = (UsbManager) context.getSystemService(Context.USB_SER…
转自:http://blog.csdn.net/eternity9255/article/details/53069037 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 前言 底层配置 打开配置 添加权限 Debug 几个比较有用的调试命令 上层应用 操作流程 具体代码实现 解码mjpeg格式 jni层 - 插入huffman表 jave层 - 解码并显示 总结 . 前言 前段时间调试了一个uvc摄像头,这里做下记录.硬件平台为mt6735,软件平台为Android 5…
之前做了一个关于Android USB通信的Case,通过Android的USB总线给Zigbee供电,和板载的Zigbee(基于Zigbee的自组网)进行通信.要使用Android的USB Host功能,首先你需要确定你的平板(手机)设备是否支持USB Host的功能,你可以从手机开发商的简介里面看到,这个功能是由CPU直接关联的,和软件没有关系,所以,你可以把你的外设模块插进去你的Android设备看看有没有反应(比如:指示灯亮),假如没有反应,那肯定是不支持的. 废话说了那么多了,进入正题…