Android40新增API.docx

上传人:b****2 文档编号:774064 上传时间:2023-04-30 格式:DOCX 页数:22 大小:36.30KB
下载 相关 举报
Android40新增API.docx_第1页
第1页 / 共22页
Android40新增API.docx_第2页
第2页 / 共22页
Android40新增API.docx_第3页
第3页 / 共22页
Android40新增API.docx_第4页
第4页 / 共22页
Android40新增API.docx_第5页
第5页 / 共22页
Android40新增API.docx_第6页
第6页 / 共22页
Android40新增API.docx_第7页
第7页 / 共22页
Android40新增API.docx_第8页
第8页 / 共22页
Android40新增API.docx_第9页
第9页 / 共22页
Android40新增API.docx_第10页
第10页 / 共22页
Android40新增API.docx_第11页
第11页 / 共22页
Android40新增API.docx_第12页
第12页 / 共22页
Android40新增API.docx_第13页
第13页 / 共22页
Android40新增API.docx_第14页
第14页 / 共22页
Android40新增API.docx_第15页
第15页 / 共22页
Android40新增API.docx_第16页
第16页 / 共22页
Android40新增API.docx_第17页
第17页 / 共22页
Android40新增API.docx_第18页
第18页 / 共22页
Android40新增API.docx_第19页
第19页 / 共22页
Android40新增API.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Android40新增API.docx

《Android40新增API.docx》由会员分享,可在线阅读,更多相关《Android40新增API.docx(22页珍藏版)》请在冰点文库上搜索。

Android40新增API.docx

Android40新增API

Android4.0新增API

Android4.0平台特性API等级:

14Android4.0是一次重要的平台发布版,为用户和应用程序开发者增加了大量的新特性。

在下面我们将讨论的所有新特性和API中,因为它将Android3.x版本中广泛使用的API和全息图像主题带给了小屏幕设备,因此我们说Android4.0是一次重要的平台发布版。

作为一名开发者,现在你拥有了单一的平台和统一的API框架,使你可以开发,并通过一个APK来发布你的应用程序,并且可以为运行相同版本Android(Android4.0[API级别14]或以上版本)的手机、平板电脑和其他设备提供优化了的用户体验。

SocialAPIsinContactsProviderUserProfile

最新的android包含了一个机主的个人档案,在ContactsContract.Profile表里,通过新建一个ContactsContract.RawContacts记录,社交应用程序可以维护一个用户个人资料数据。

这个新的联系人数据表的定义不同于以往的联系人数据表的定义,你必须在CONTENT_RAW_CONTACTS_URI表里新建1个内容。

联系人资料在这个表中被加上了"Me"标签,只能单一用户可见。

增加一个新的联系人资料需要WRITE_PROFILE权限,读取该联系人资料表需要READ_PROFILE权限。

大多数的应用程序需要用户资料,甚至是提供数据给该资料。

但是读取用户资料是一个敏感的权限,你应该期望用户对需要读取用户资料的应用保持怀疑态度。

InviteIntent

INVITE_CONTACTintent允许一个应用按照用户意愿,邀请一个联系人进入某个社会网络的行为。

接收程序通过它邀请指定的人加入社会网络。

大部分的应用将会在这个操作的接收端。

例如,内置的people应用程序里,用户详细信息列表上列出了该用户使用的社交应用,用户可以通过社交应用上的"添加联接"按钮调用inviteintent连接两个人的社会网络。

为了让你的社交应用程序出现在“添加链接”按钮的列表里,你的应用必须提供一个同步适配器来同步你的社交网络中的联系人信息。

你必须通过对你的应用程序的同步配置文件增加inviteContactActivity属性告知系统你的应用回应INVITE_CONTACTintent。

activity必须包含一个完全合格的限定名系统才会给其发送inviteintent,相关activity才会检索意图响应的数据,邀请相关的人加入社会网络或者与手机使用者建立连接。

Largephotos

android现在支持高分辨率的联系人照片,当你将一个照片放到联系人记录中的时候,系统会把它处理成96x96的缩略图(像之前那样),和一个256x256文件形式的的显示图片(该系统选择的确切尺寸,在未来可能会有所不同)。

你能够为联系人添加一个大的照片在PHOTO列,系统会再加工成相应的缩略图显示照片记录。

ContactUsageFeedback

新的ContactsContract.DataUsageFeedbackAPIs允许你追踪用户使用特定的方法联系其他人的频度,例如用户多久使用每个电话号码或邮件。

此信息有助于改善与每个人相关联的每个接触方法的排名,并提供更好的建议去联系每个人联系。

Calendar(日历)Provider新的日历API允许我们读,增加,编辑和删除存储在CalendarProvider的日历、事件与会者,提醒和警示,各种应用程序和部件可以使用这些API来读取和修改日历事件。

然而,一些最引人注目的用例的是同步适配器能够通过CalendarProvider同步其他日历服务的用户的日历,能够一所有的用户事件提供一个统一的存放位置。

例如,GOOGLE日历事件,是同步的google日历同步适配器,允许这些事件在android内置的日历软件中查看。

Eventintent

如果你想要做的是用户的日历添加事件,你可以使用"vnd.android.cursor.item/event"类型的ACTION_INSERTintent开始在日历应用程序的活动,创建新的事件。

使用的意图,不需要任何权限并且您可以指定下列额外的事件的详细信息:

(事件名,事件开始时间,结束时间,地点,描述,等等。

)VoicemailProvider新的VoicemailProvider允许应用程序添加语音信箱设备,使目前所有用户的语音邮件在一个单一的视觉呈现。

举个例子,很有可能,用户拥有多个语音邮件的来源,如从手机服务供应商和其他VoIP或其他替代的语音服务之一。

这些应用可以通过VoicemailProviderAPIs添加他们的语音邮箱到该手机中。

内置的Phone应用会呈现所有的语音邮箱给用户一个统一的展示。

虽然Phone应用是系统唯一的一个应用能够读取所有的语音邮件信箱,但是每个提供语音邮件服务的应用能够读他们加到系统中的邮箱(不能读其他服务的)。

由于现在的API不支持第三方应用程序去读系统中所有的语音信箱,他们能够用的api操作是他们提供给用户的语音邮箱。

Multimedia(多媒体)Android4.0增加了几个新的API,使应用程序能够与照片,影片,和音乐等媒体交互。

MediaEffects

一个新的媒体效果框架,让您适用于各种图像和视频的视觉效果。

例如,图像效果框架让您可以轻松地修复红眼,将图像转换为灰度,亮度调整,调整饱和度,旋转图像,应用鱼眼镜头的效果,等等。

该效果框架执行在GPU上,以获得最大的性能。

为了最佳效果,效果框架直接应用了OpenGL的纹理,您的应用程序必须有一个有效的OpenGLcontext,才可以使用效果框架的API。

应用效果的纹理可以用于位图,视频,甚至相机。

不过,也有一定的限制,纹理必须满足:

1、他们必须绑定到一个GL_TEXTURE_2D的纹理图像

2、他们必须至少包含一个mipmap的级别Remotecontrolclient

新RemoteControlClient允许媒体播放器,使媒体播放器能够被远程控制,如设备锁定屏幕。

媒体播放器还可以使遥控器上的显示目前正在播放的媒体,如进度信息和专辑封面的信息。

Mediaplayer

1、加入网络权限就可以使媒体播放器播放网络上的音乐。

必须不要忘记加上权限。

2、允许你定义播放习惯。

Mediatypes

本次的4.0增加了支持的媒体种类:

1、HTTP/HTTPS的实时流媒体协议第3版

2、ADTS的原料AAC音频编码

3、WEBP图像

4、Matroska的视频

Camera类Camera类包括用于(人脸检测和控制焦距和感光区)的API。

facedetection人脸检测相机的应用程序现在可以提高自己的能力啦。

作为一门人脸识别的学科,不仅检测人脸特征,而且还检测眼睛和嘴巴。

如果你想要使用你的相机来做人脸识别的程序,你必须使用setFaceDetectionListener方法来注册Camera.FaceDetectionListener对象。

然后,您可以启动您的camerasurface,并调用startFaceDetection方法开始检测人脸。

如果你实现了Camera.FaceDetectionListener接口,当系统检测到一个或者更多个人脸时,便会向所调用的接口回调onFaceDetection方法,包括一组Camera.Face对象。

Camera.Face类的实例提供有关于人脸识别的各种各样信息,其中包括:

1、一个相对与相机当前视野的所指定人脸边界的矩形框(Rect对象)。

2、一个1到100之间并用于人脸识别精确度的整数。

每个所检测到的人脸,会分配独一无二的ID。

当识别到眼睛和嘴巴时,都会生成一个Point对象。

该对象指定眼睛或者嘴巴的空间位置。

注意:

并不是所有设备都支持人脸识别,你应该先调用getMaxNumDetectedFaces()方法来保证返回的值大于0,说明你的设备是支持该技术的。

当然,还有一些设备可以支持人脸识别,但是不支持眼睛和嘴巴的鉴定,在这种情况下,Camera.Face对象为空值。

焦距和感光区域照相机程序现在可以控制焦距和感光的白平衡以及自动曝光。

这两个功能使用新的Camera.Area类来指定照相所集中和所计算的出来的当前视图区域。

Camera.Area类的实例定义该视图边界的矩形区域和面积比重(相对于其他区域,该区域的重要性)。

设置焦距或感光度之前,应首先调用getMaxNumFocusAreas()或getMaxNumMeteringAreas()方法。

如果这些返回零,则该设备不支持相应的功能。

设置焦距调用setFocusAreas()方法;设置感光度调用setMeteringAreas()方法;这两种方法每次会返回包含所对应焦距或者感光度的Camera.Area对象列表(List)。

例如,你可以实现一个功能,允许用户设置通过触摸一个预览区域,您再转化到重点领域Camera.Area对象和要求,重点放在该区域的场景,相机。

在现场的面积变化,在这一领域的重点或曝光将不断更新。

摄像头自动对焦现在,您可以启用连续自动对焦(CAF)拍照。

为了使你的照相程序调用连续自动对焦功能,需要传递FOCUS_MODE_CONTINUOUS_PICTURE参数到setFocusMode()方法中。

当准备拍摄照片,调用autoFocus()方法。

Camera.AutoFocusCallback对象便立即收到一个回调来指示是否获得到了焦点。

接受到回调值后,如果还需要重新自动对焦,则必须调用cancelAutoFocus()方法。

注意:

连续自动对焦功能支持视频拍摄,使用FOCUS_MODE_CONTINUOUS_VIDEO参数。

可以参考sdk9版本。

摄像头的其他功能

在录制视频时,您可以调用takePicture()方法保存照片,同时不中断视频的拍摄。

但是,在这样做之前,你应该调用isVideoSnapshotSupported()方法来以确保硬件是否支持这个功能。

使用setAutoExposureLock()和setAutoWhiteBalanceLock()方法可以锁定自动曝光和白平衡来防止用户更改这些属性。

相机拍摄运行时,可以调用setDisplayOrientation()方法。

在以前的版本中,你只能在运行之前使用,但现在你可以在任何时候改变方向。

相机广播意图Camera.ACTION_NEW_PICTURE:

这表明用户已经占据了新的照片。

内置的摄像头应用程序调用此广播,拍摄照片后,第三方的摄像头应用程序也应该拍摄照片后播出的这一意图。

Camera.ACTION_NEW_VIDEO:

这表明用户已经占据了一个新的视频。

内置摄像头的应用程序调用此广播后的视频记录和第三方的摄像头应用程序也应该拍摄视频后播放这一意图。

AndroidBeam(NDEFPushwithNFC)Android的光束是一个新的NFC功能,允许您发送NDEF的邮件从一台设备到另一台(又称“NDEF推”的过程)。

两款Android供电设备支持Android束接近时,数据传输启动(约4厘米),通常与他们的背上抚摸。

内部的NDEF消息要共享设备之间的数据可以包含任何数据,例如,人民应用股的接触,采用Android的YouTube股份的视频和浏览器股网址梁。

采用Android束的设备之间传输数据,您需要创建一个包含您要共享的信息,而您的活动是NdefMessage前台的NdefMessage。

然后,您必须通过NdefMessage到系统中的两种方法之一:

1、定义一个单独的NdefMessage推,而在活动:

setNdefPushMessage()在任何时间设置您要发送的消息。

例如,你可以调用这个方法,并通过您NdefMessageNdefMessage在您的活动onCreate方法。

然后,每当Android的光束与另一个设备激活活动,而在前台,系统的NdefMessage发送到其他设备。

2、定义NdefMessage推Android的梁开始的时间:

实施NfcAdapter.CreateNdefMessageCallback,在实施createNdefMessage方法返回您要发送的NdefMessage的。

然后通过NfcAdapter.CreateNdefMessageCallback实施setNdefPushMessageCallback在这种情况下,Android的光束是与另一个设备激活时,你的活动,而在前台,createNdefMessage来检索您要NdefMessage的NdefMessage。

这允许您定义NdefMessage只提供一次Android的光束被启动,如果邮件的内容可能会有所不同,整个活动的生活。

如果你想运行一些特定的代码,一旦该系统已成功交付NDEF消息到其他设备,你可以NfcAdapter.OnNdefPushCompleteCallbackNfcAdapter.OnNdefPushCompleteCallback和setNdefPushCompleteCallback。

系统将调用onNdefPushComplete()时,邮件将被传递。

在接收设备上,系统调度NDEF定期NFC标签以类似的方式推入消息。

该系统调用的意图ACTION_NDEF_DISCOVERED行动启动URL或一个MIME类型设置根据第一的活动,你想回应的活动,你可以声明意图过滤器的网址或你的应用程序关心的MIME类型。

欲了解更多关于标签的信息,调度NFC开发人员指南。

如果你想你NdefMessageNdefMessage携带URI,你现在可以用方便的createUriNdefRecordUri的对象是一个字符串或一个基于构造一个新NdefRecordNdefRecord。

如果URI是一个特殊的格式,您希望您的应用程序也收到一个Android束事件期间,您应该为您的活动创造的意图过滤器使用相同的URI方案,以接收传入的NDEF消息。

为了保证您的应用程序处理传入的NDEF消息,你也应该通过与您的“Android应用程序记录NdefMessageNdefMessage,即使其他应用程序过滤器相同的意图行动。

您可以创建一个Android应用程序通过createApplicationRecord,通过它您的应用程序包的名称。

当其他设备接收的的应用程序记录和多个应用程序,处理的指定意图的活动NDEF消息时,系统提供的消息,在应用程序中的活动(基础上的匹配应用程序记录)如果目标设备目前还没有安装您的应用程序,该系统采用的Andr?

?

oid应用程序的记录,推出Android市场和用户的应用程序以安装。

如果您的应用程序不使用NFCAPI来执行NDEF推消息,则Android提供了一个默认的行为:

当您的应用程序是在一台设备在前台和Android的光束被调用另一个Android的供电设备,其他设备接收到一个NDEF一个Android应用程序记录,确定您的应用程序的消息。

如果接收设备已安装的应用程序,系统启动它,如果它不安装,Android的市场开放,并把用户带到您的应用程序,以便安装它。

你可以阅读更多有关Android的梁,在其他NFC功能的NFC基础开发指南。

对于一些示例代码使用Android束,看到的Android束演示。

Wi-FiDirect现在,Android的支持Wi-Fi的直接点对点点对点(P2P)Android系统的供电设备和其他类型的设备,没有一个热点或互联网连接之间的连接。

Android框架提供了一套Wi-Fi的P2P的API,允许你去发现和连接到其他设备时,每个设备的Wi-Fi的直接支持,然后沟通跨越距离远远长于蓝牙连接迅速?

?

连接。

.wifi.p2p,一个新的软件包,包含所有的API执行同行等连接与Wi-Fi。

你需要与主类是WifiP2pManager,您可以调用getSystemService(WIFI_P2P_SERVICE)收购。

WifiP2pManager包括API,允许您:

1、您P2P连接的应用程序通过调用initialize

2、探索通过调用附近的设备discoverPeers开始通过调用P2P连接connect以及一些其他的接口和类是必要的,如:

WifiP2pManager.ActionListener接口,让您能够接收的操作时,如发现同行或连接到他们的成功或失败的回调。

WifiP2pManager.PeerListListener界面,您可以收到有关发现同行的信息。

回调提供了一个WifiP2pDeviceList,您可以从中检索一个WifiP2pDevice范围内的每个设备对象和获取信息,如设备的名称,地址,设备类型,设备支持的WPS配置。

WifiP2pManager.GroupInfoListener界面,您可以收到一个P2P组信息。

回调提供了一个WifiP2pGroup对象,它提供了所有者,网络名称和密码的信息,如组。

WifiP2pManager.ConnectionInfoListener界面,您可以得到当前连接的信息。

回调提供了一个WifiP2pInfo对象,它具有信息,如一个组是否已经形成,谁是该组的所有者。

为了使用的Wi-FiP2P的API,你的应用程序必须要求以下用户权限:

1、ACCESS_WIFI_STATE

2、CHANGE_WIFI_STATE

3、INTERNET(虽然你的应用程序不技术上连接到互联网,沟通的Wi-Fi标准的Java套接字直接同行需要Internet权限)。

Android系统还广播了几种不同的行动,在特定的Wi-FiP2P事件:

1、WIFI_P2P_CONNECTION_CHANGED_ACTION:

P2P连接状态发生了变化。

这与EXTRA_WIFI_P2P_INFOWifiP2pInfo与EXTRA_NETWORK_INFONetworkInfo对象的对象EXTRA_NETWORK_INFOEXTRA_NETWORK_INFOEXTRA_WIFI_P2P_INFOEXTRA_WIFI_P2P_INFO。

2、WIFI_P2P_STATE_CHANGED_ACTION:

P2P的状态已经改变之间的启用和禁用。

它携带EXTRA_WIFI_STATE要么WIFI_P2P_STATE_DISABLED或WIFI_P2P_STATE_ENABLED

WIFI_P2P_PEERS_CHANGED_ACTION等设备的列表已经改变。

3、WIFI_P2P_THIS_DEVICE_CHANGED_ACTION:

该设备的细节已经改变。

见的WifiP2pManager文档了解更多信息。

也期待在Wi-Fi的直接演示示例应用程序。

BluetoothHealthDevices机器人现在支持蓝牙的健康概况设备,使您可以创建使用蓝牙医疗设备,如心率监视器,血液米,温度计,和规模,支持蓝牙通信的应用。

定期耳机支持A2DP设备,你必须调用getProfileProxy()BluetoothProfile.ServiceListener和HEALTH的廓型与文件代理对象建立连接。

一旦你获得健康概况代理(BluetoothHealth对象),成对的医疗设备的连接和沟通包括以下新的蓝牙类:

BluetoothHealthCallback:

您必须扩展这个类实现回调方法接收应用程序的注册状态和蓝牙信道状态的变化更新。

BluetoothHealthAppConfiguration:

在您的回调BluetoothHealthCallback,您会收到此对象的实例,它提供了有关可用的蓝牙医疗设备,您必须使用执行各种操作,如启动和终止连接的BluetoothHealth信息BluetoothHealth的API。

AccessibilityAndroid的4.0提高为视障用户新的探索,触摸模式和扩展API,允许您提供有关视图内容的更多信息,或开发先进的辅助功能。

通过触控模式的新扩展功能视力减退的用户现在可以探索通过屏幕触摸并拖动手指在屏幕上听到的内容的语音描述。

因为探索,触摸模式就像一个虚拟的光标工程,它允许屏幕阅读器,以确定描述性的文字相同的方式,屏幕阅读器可以轨迹球通过阅读所提供的信息,当android:

contentDescription:

contentDescriptionsetContentDescription后,一个模拟的“悬停”事件。

所以,认为这是一个提醒,你应该提供的意见,在您的应用程序的描述性文字,特别ImageButton的EditTextEditTextImageViewImageView的和其他部件,可能不是自然包含说明性文字。

拼写检查服务一个新的拼写检查框架,允许应用程序用类似于输入法框架的方法来创建拼写检查。

创建一个拼写检查,你必须实现一个继承自SpellCheckerService类和SpellCheckerService.Session类的服务,以便接口回调方法来提供基于文本的拼写检查。

在SpellCheckerService.Session的回调方法里面,你必须返回拼写建议的SuggestionsInfo对象一个拼写检查服务的应用,必须声明服务所需的BIND_TEXT_SERVICE权限。

服务也必须声明一个intent-filter,它的action属性为<actionandroid:

name="android.service.textservice.SpellCheckerService"/>,并且应该包含一个<meta-data>元素,来声明拼写检查的配置信息。

语音朗读引擎(TTS)android的TTS已经显著的扩大了,它允许应用程序非常简便的实现自定义TTS,当应用程序在选在TTS引擎时,想要使用几个包含新的API的TTS引擎。

使用TTS引擎在Android以前的版本里面,使用系统提供的TTS引擎,你应该使用TextToSpeech类,来执行TTS操作,或者你用setEngineByPackageName()方法来自定义一个引擎。

在Android4.0,setEngineByPackageName()方法已经过时了,现在你可以通过一个新的TextToSpeeck的构造方法来指定引擎,该方法接收一个TTS引擎的包名。

你还可以通过getEngines()来查询可用的TTS引擎,这个方法返回一个TextToSpeech.EngineInfo对象的集合,改对象包含引擎的图标、标签和包名等信息。

建立TTS引擎在以前,自定义引擎的要求是引擎得使用一个无证本地头文件,在Android4.0,有一套完整的API框架来建立TTS引擎。

一个基本的设置要求是需要一个响应了INTENT_ACTION_TTS_SERVICE意图的TextToSpeeckService的实现,一个TTS引擎的主要工作发生在一个继承TextToSpeechService的service的onSynthesizeText()回调里面,系统给这个方法提供了两个对象:

SynthesisRequest:

它包含多种数据,包括合成的文字,环境,语速和语调

SynthesisRequest:

这是一个你的TTS引擎提供了音频流的接口。

首先,引擎必须调用start()方法,来表明已经准备好提供音频数据,然后,调用audioAvailable()方法,传递一个bytebuffer的音频数据。

一旦你的引擎通过了

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2