9.0新增功能:
利用Wi-Fi RTT进行室内定位
Android 9添加了对IEEE 802.11mc Wi-Fi协议(也称为 Wi-Fi往返时间 (RTT))的平台支持,从而让您的应用可以利用室内定位功能。
在运行 Android 9 且具有硬件支持的设备上,应用可以使用 RTT API 来测量与附近支持 RTT 的 Wi-Fi 接入点 (AP) 的距离。 设备必须已启用位置服务并开启 Wi-Fi 扫描(在 Settings > Location 下),同时您的应用必须具有 ACCESS_FINE_LOCATION 权限。
注:设备无需连接到接入点即可使用 RTT。 为了保护隐私,只有手机可以确定与接入点的距离;接入点无此信息。
显示屏缺口支持
Android 9 支持最新的全面屏,其中包含为摄像头和扬声器预留空间的屏幕缺口。 通过 DisplayCutout 类可确定非功能区域的位置和形状,这些区域不应显示内容。 要确定这些屏幕缺口区域是否存在及其位置,请使用 getDisplayCutout() 函数。
全新的窗口布局属性 layoutInDisplayCutoutMode 让您的应用可以为设备屏幕缺口周围的内容进行布局。 您可以将此属性设为下列值之一:
-
LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT
只有当DisplayCutout完全包含在系统状态栏中时,才允许窗口延伸到DisplayCutout区域显示 -
LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
该窗口决不允许与DisplayCutout区域重叠。 -
LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER
该窗口始终允许延伸到屏幕短边上的DisplayCutout区域。
可以按以下方法在任何运行 Android 9 的设备或模拟器上模拟屏幕缺口:
- 启用开发者选项。
- 在 Developer options 屏幕中,向下滚动至 Drawing 部分并选择 Simulate a display with a cutout。
- 选择屏幕缺口的大小。
注:我们建议您通过使用运行Android 9的设备或模拟器测试屏幕缺口周围的内容显示
通知
从Android 7.0(API级别24)开始,您可以添加一个操作以回复短信或直接从通知中输入其他文本.Android 9通过下列增强提升了该功能:
- 简化了针对对话参与者的支持:Person 类可用于识别参与对话的人员,包括他们的头像和URI。现在,许多其他API(如 addMessage())均可利用[
Person
]类而不是CharSequence
。Person
类也支持构建器设计模式。 - 支持图像:现在,Android 9可在手机的“短信通知”中显示图像。您可以使用对短信使用 setData()来显示图像。以下代码段演示了如何创建
Person
和包含图像的短信。 - 将回复另存为草稿:当用户无意中关闭一个短信通知时,您的应用可以检索系统发送的 EXTRA_REMOTE_INPUT_DRAFT。您可以使用此额外预备充分应用中的文本字段,以便用户可以完成他们的回复。
- 确定对话是否为群组对话。可以您使用 setGroupConversation() 以明确确定对话是否为群组对话。
- 为Intent设置语义操作:setSemanticAction() 函数允许您为操作提供语义含义,如“标记为已读”,“删除”和“回复”等。
- SmartReply:Android 9支持在您的短信应用中提供相同的建议回复。使用 RemoteInput.setChoices() 为用户提供一组标准回复。
Android 8.0引入了通知渠道,允许您为要显示的每种通知类型创建可由用户自定义的渠道.Android 9通过下列变更简化通知渠道设置:
- 屏蔽渠道组:现在,用户可以针对某个应用在通知设置中屏蔽整个渠道组。您可以使用 isBlocked() 函数确定何时屏蔽一个渠道组,从而不会向该组中的渠道发送任何通知。
此外,的您应用可以使用全新的 getNotificationChannelGroup() 函数查询当前渠道组设置。 - 全新的广播Intent类型:现在,当通知渠道和渠道组的屏蔽状态发生变更时,Android系统将发送广播Intent。拥有已屏蔽的渠道或渠道组的应用可以侦听这些Intent并做出相应的回应。有关这些Intent操作和extra的更多信息,请参阅 NotificationManager 参考中更新的常量列表。有关响应广播Intent的信息,请参阅广播。
- NotificationManager.Policy 有3种新的“请勿打扰”优先级类别:
- PRIORITY_CATEGORY_ALARMS 优先处理警报。
- PRIORITY_CATEGORY_MEDIA 优先处理媒体源的声音,如媒体和语音导航。
- PRIORITY_CATEGORY_SYSTEM 优先处理系统声音。
NotificationManager.Policy
还有7种新的“请勿打扰”常量,可以用来抑制视觉中断:
- SUPPRESSED_EFFECT_FULL_SCREEN_INTENT 防止通知启动全屏活动。
- SUPPRESSED_EFFECT_LIGHTS 屏蔽通知灯。
- SUPPRESSED_EFFECT_PEEK 防止通知短暂进入视图(“滑出”)。
- SUPPRESSED_EFFECT_STATUS_BAR 防止通知显示在支持状态栏的设备的状态栏中。
- SUPPRESSED_EFFECT_BADGE 在支持标志的设备上屏蔽标志。如需了解详细信息,请参阅修改通知标志。
- SUPPRESSED_EFFECT_AMBIENT 在支持微光显示的设备上屏蔽通知。
- SUPPRESSED_EFFECT_NOTIFICATION_LIST 防止通知显示在支持列表视图(如通知栏或锁屏)的设备的列表视图中。
HTTP修改
从Android 9开始,默认情况下该内容库已从bootclasspath中移除且不可用于应用。
要继续使用Apache HTTP客户端,以及Android 9及更高版本为目标的应用可以向其 AndroidManifest.xml
添加以下内容:
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
注:拥有最低SDK版本23或更低版本的应用需要 android:required="false"
属性,因为在API级别低于24的设备上,org.apache.http.legacy
库不可用。