-
将回复另存为草稿:当用户无意中关闭一个短信通知时,您的应用可以检索系统发送的
EXTRA_REMOTE_INPUT_DRAFT
。 您可以使用此 extra 预填充应用中的文本字段,以便用户可以完成他们的回复。 -
确定对话是否为群组对话。您可以使用
setGroupConversation()
以明确确定对话是否为群组对话。 -
为 Intent 设置语义操作:
setSemanticAction()
函数允许您为操作提供语义含义,如“标记为已读”、“删除”和“回复”等。 -
SmartReply:Android 9 支持在您的短信应用中提供相同的建议回复。 使用
RemoteInput.setChoices()
为用户提供一组标准回复。
Android 9 引入了多个通知增强功能,可供以 API 级别 28 及以上版本作为目标平台的开发者使用。
提升短信体验
从 Android 7.0(API 级别 24)开始,您可以添加一个操作以回复短信或直接从通知中输入其他文本。 Android 9 通过下列增强提升了该功能:
-
简化了针对对话参与者的支持:
Person
类可用于识别参与对话的人员,包括他们的头像和 URI。 现在,许多其他 API(如addMessage()
)均可利用 [Person
] 类而不是CharSequence
。Person
类也支持构建器设计模式。 -
支持图像:现在,Android 9 可在手机的“短信通知”中显示图像。 您可以使用对短信使用
setData()
来显示图像。 以下代码段演示了如何创建Person
和包含图像的短信。 -
// Create new Person. Person sender = new Person() .setName(name) .setUri(uri) .setIcon(null) .build(); // Create image message. Message message = new Message("Picture", time, sender) .setData("image/", imageUri); Notification.MessagingStyle style = new Notification.MessagingStyle(getUser()) .addMessage("Check this out!", 0, sender) .addMessage(message);
-
将回复另存为草稿:当用户无意中关闭一个短信通知时,您的应用可以检索系统发送的
EXTRA_REMOTE_INPUT_DRAFT
。 您可以使用此 extra 预填充应用中的文本字段,以便用户可以完成他们的回复。 -
确定对话是否为群组对话。您可以使用
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
防止通知启动全屏 Activity。SUPPRESSED_EFFECT_LIGHTS
屏蔽通知灯。SUPPRESSED_EFFECT_PEEK
防止通知短暂进入视图(“滑出”)。SUPPRESSED_EFFECT_STATUS_BAR
防止通知显示在支持状态栏的设备的状态栏中。SUPPRESSED_EFFECT_BADGE
在支持标志的设备上屏蔽标志。 如需了解详细信息,请参阅修改通知标志。SUPPRESSED_EFFECT_AMBIENT
在支持微光显示的设备上屏蔽通知。SUPPRESSED_EFFECT_NOTIFICATION_LIST
防止通知显示在支持列表视图(如通知栏或锁屏)的设备的列表视图中。