✿Android 3.1 --- 久违的 USB、mtp、rtp
3.1多了三个大包android.hardware.usb 、android.mtp 、 android.net.rtp !
USB、mtp、rtp -------三个字眼,各个血淋淋,让人悲喜交加,Google你为何不早点发?
android.mtp
让连接的camera和其他设备,直接使用PTP(图像传输协议)的MTP(媒体传输协议)。
保持设备连接,上层app可以接收到通知,取消,管理这些设备的文件和存储,文件的传输和元数据等。
它为我们提供了定义PTP和MTP的MtpConstants,描述USB host总线上连接的PTP或MTP设备的MtpDevice,封装MTP设备信息的MtpDeviceInfo,和该对象的信息的MtpObjectInfo,MTP设备上存储单元信息的封装MtpStorageInfo 。
android.hardware.usb
支持通过USB连接到Android供电设备的外设的数据通信。中央类是UsbManager,它提供了识别和使用的USB设备和USB配件通讯方法。应用程序可以获取一个UsbManager实例,然后用于连接的设备或配件清单查询,管理、通信。
若Android的供电设备作为USB host,那么使用UsbDevice。若外设充当USB host ,那么使用UsbAccessory。大多数输入设备鼠标和游戏杆,camera,集线器等都属于前者,即UsbDevice。
- <uses-feature android:name="android.hardware.usb.host" android:required="true">
后者呢,通常都是USB设备作为主控制器,提供电源,与Android设备通信,即UsbAccessory。
- <uses-feature android:name="android.hardware.usb.accessory" android:required="true">
另外,为了处理鼠标,滚轮和轨迹球输入,新增两种新的运动事件行动:
1.ACTION_SCROLL,其中介绍了指针的位置的一个非触摸滚动如从鼠标移动,滚轮,发生了。在MotionEvent,对AXIS_HSCROLL和AXIS_VSCROLL轴值指定相对滚动运动。
2.ACTION_HOVER_MOVE,报告了在没有被按下鼠标按钮的当前位置,以及自上次HOVER_MOVE事件的任何中间点。
android.net.rtp
内置RTP(实时传输协议)协议栈,应用程序可以使用它来管理交互数据流。应用程序提供VOIP,一键通,会议和音频流,在网络可用的前提下,可以使用这些API来启动会话和传输,或接收数据。
最简单的用法即单个远程终端和本地。AudioStream指定远程终端和网络映射和配置AudioCodec组成。
AudioGroup代表了一个或多个AudioStreams本地终结点。混合所有的AudioGroupAudioStreams并有选择与设备扬声器和麦克风在同一时间互动。对于更复杂的应用,还要顾及RTP协议本身的限制。
若要使用RTP API,应用程序必须添加此权限
- <uses-permission android:name="android.permission.INTERNET">
获取麦克风:
- <uses-permission android:name="android.permission.RECORD_AUDIO">