备注:之前Android入门学习的书籍使用的是杨丰盛的《Android应用开发揭秘》,这本书是基于Android 2.2API的,目前Android已经到4.4了,更新了很多的API,也增加了很多的新组件,一直没有系统的学习过。现在开始这个“完善Android学习”系列,将2.2以后的新知识做一个概览。概览来自:http://developer.android.com/about/versions/android-2.3.4.html

API 2.3.4和2.3.3的API一样,没有变化。

不过引入了一项新的功能:Open Accessory。其作用是整合与谷歌设备相连的外围设备和设备上的Android应用。这项功能是基于USB数据线的。这个比较虚,实际可以看该文章:[图]Google发布Android Open Accessory API 可控制机械设备运转

关于Open Accessory的API是在Android 3.1中被集成进去的,但是运行Android 2.3.4的设备也可以通过一个可选的库——Open Accessory Library使用该功能。该库暴露了API接口以便于让应用发现、管理用USB数据和Android设备相连的外围设备并且与它们交互。另外这个库也额外暴露了一些Android 2.3.4没有开放的接口。

Open Accessory Library在设备上是可选的,设备制造商可以选择是否包含该库。在Android3.1上,该库则是默认被编译进去的。在Android2.3.4中提供的API接口是基于Android3.1提供的接口的,大部分情况下你可以在两个API Level上使用相同的技术和API,但是,在API 2.3.4上,在下面两点上和标准的USB API是不一样的:

1)获取UsbManager对象——使用库,我们使用如下代码:

 UsbManager manager = UsbManager.getInstance(this);

使用的方法是getInstance()而不是getSystemService();

2)从Filter Intent得到一个UsbAccessory对象——当一个设备或者附件连接到设备的时候,应用会接受到一个Intent,UsbAccessory就包含在Intent中,如果你是使用的库,可以使用以下方式获得UsbAccessory对象:

 UsbAccessory accessory = UsbManager.getAccessory(intent)

3)不支持Android设备作为USB主设备——Android2.3.4和Open Accessory Library不支持USB主设备模式(比如,使用接口UsbDevice),该模式在Android3.1中被支持。运行在API 2.3.4上的设备不能作为USB主设备,只能作为从设备,而连接上去的辅助设备则可以作为主设备(Android设备使用UsbAccessory)

为了使用Open Accessory Library,你需要:

1)最新的SDK开发工具版本;

2)最新的API版本,包括该库;

3)一个运行Android2.3.4或者Android3.1并且支持USB Accessory的Android设备,用于测试;

具体的开发细节查看开发文档USB Host and Accessory

另外,如果需要监听设备的连接,需要在manifest中添加以下内容:

 <uses-feature
android:name="android.hardware.usb.accessory"
android:required="true">

【Android】完善Android学习(二:API 2.3.4)的更多相关文章

  1. android 开源项目学习<二>

    roottools:   RootTools gives Rooted developers easy access to common rooted tools...  https://code.g ...

  2. Android Afinal框架学习(二) FinalActivity 一个IOC框架

    框架地址:https://github.com/yangfuhai/afinal 相应的源代码: net.tsz.afinal.annotation.view.* FinalActivity Fina ...

  3. Hibernate框架学习(二)——api详解

    一.Configuration对象 功能:配置加载类,用于加载主配置,orm元数据加载. //1.创建,调用空参构造(还没有读配置文件) Configuration conf=new Configur ...

  4. 【Android】完善Android学习(六:API 4.0)

    备注:之前Android入门学习的书籍使用的是杨丰盛的<Android应用开发揭秘>,这本书是基于Android 2.2API的,目前Android已经到4.4了,更新了很多的API,也增 ...

  5. 【Android】完善Android学习(三:API 3.0)

    备注:之前Android入门学习的书籍使用的是杨丰盛的<Android应用开发揭秘>,这本书是基于Android 2.2API的,目前Android已经到4.4了,更新了很多的API,也增 ...

  6. 【Android】完善Android学习(一:API 2.3.3)

    备注:之前Android入门学习的书籍使用的是杨丰盛的<Android应用开发揭秘>,这本书是基于Android 2.2API的,目前Android已经到4.4了,更新了很多的API,也增 ...

  7. android移动开发学习笔记(二)神奇的Web API

    本次分两个大方向去讲解Web Api,1.如何实现Web Api?2.如何Android端如何调用Web Api?对于Web Api是什么?有什么优缺点?为什么用WebApi而不用Webservice ...

  8. 【Android】完善Android学习(七:API 4.0.3)

    备注:之前Android入门学习的书籍使用的是杨丰盛的<Android应用开发揭秘>,这本书是基于Android 2.2API的,目前Android已经到4.4了,更新了很多的API,也增 ...

  9. 【Android】完善Android学习(五:API 3.2)

    备注:之前Android入门学习的书籍使用的是杨丰盛的<Android应用开发揭秘>,这本书是基于Android 2.2API的,目前Android已经到4.4了,更新了很多的API,也增 ...

随机推荐

  1. 条款03 尽可能使用const

    一.概述 使用const约束对象:可以获得编译器的帮助(指出相关出错的地方) const与成员函数:const重载.转型.避免代码重复 二.细节 1. 为什么有些函数要返回const对象(看上去没必要 ...

  2. unordered_map(hash_map)和map的比较

    测试代码: #include <iostream> using namespace std; #include <string> #include <windows.h& ...

  3. C++课堂作业2016.05.04

    GitHub/object-oriented 作业题目 开课后的第一次作业,简单地写了一个类,用成员函数来实现计算圆的面积. [代码] main.cpp #include "Area.h&q ...

  4. android项目中导入actionbarsherlock 需要注意的地方

    1,在导入actionbarsherlock 这个library时,如果一直报" Invalid Project Description" ;  解决办法:  android中li ...

  5. Mac OS安装Scrapy失败

    报错: DEPRECATION: Uninstalling a distutils installed project (six) has been deprecated and will be re ...

  6. 【week5】psp

    本周psp psp饼图: 随笔字数折线图: 代码行折线图:

  7. 网众远程修改ip、dns

    修改文件 修改ip vi /etc/rc.d/rc.inetd1.config IPADDR[0] 对应第一块网卡的ip 修改dns vi /etc/resolv.conf nameserver 21 ...

  8. PHPCMSV9 黄页新闻、产品、商机均无法浏览具体信息,显示您没有访问该信息的权限!

    原帖地址:http://bbs.phpcms.cn/forum.php?mod=viewthread&tid=294956&highlight=%C3%BB%D3%D0%B7%C3%C ...

  9. 分享几个.Net计划任务组件

    Quartz http://www.quartz-scheduler.net/ Hangfire http://hangfire.io/ Install-Package Hangfire 使用OWIN ...

  10. imfilter与fspecial

    saliencyMap = imfilter(saliencyMap,fspecial('gaussian',round(scale/64*3),min(scale/64*3*5/4))); fspe ...