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
库不可用。