阅读(562) (7)

鸿蒙OS NotificationHelper

2022-10-10 13:41:39 更新

NotificationHelper

java.lang.Object

|---ohos.event.notification.NotificationHelper

public class NotificationHelper
extends Object

管理通知。

该类提供的方法都是静态的,无需创建该类的对象即可调用。

通常,只有系统应用程序才具有通知订阅和取消订阅的权限。 您可以指定要发布的通知的内容,该内容由 NotificationRequest 携带。 通知ID在应用程序中是唯一的,在使用NotificationRequest承载通知内容时必须指定。 如果具有此 ID 的通知已发布,并且您需要使用此 ID 发布另一个通知,则将更新原始通知。 此外,通知 ID 可用于通过调用 cancelNotification(int) 方法取消通知。

Since:

1

方法总结

修饰符和类型 方法 描述
static void addNotificationSlot(NotificationSlot slot) 创建一个通知槽。
static void addNotificationSlotGroup(NotificationSlotGroup slotGroup) 创建一个通知槽组,通过调用 NotificationSlot#setSlotGroup(String) 可以将 NotificationSlot 对象绑定到该组。
static void addNotificationSlotGroups(ListNotificationSlotGroup slotGroups) 创建多个通知槽组。
static void addNotificationSlots(ListNotificationSlot slots) 创建多个通知槽。
static boolean areNotificationsSuspended() 检查此应用程序是否处于挂起状态。
static void cancelAllNotifications() 取消所有已发布的通知。
static void cancelNotification(int notificationId) 取消已发布的通知。
static void cancelNotification(String label, int notificationId) 取消与指定标签和 notificationId 匹配的已发布通知。
static boolean canPublishNotificationAsBundle(String representativeBundle) 通过以给定代表包指示的另一个应用程序的名称调用 publishNotificationAsBundle(java.lang.String,ohos.event.notification.NotificationRequest) 来检查您的应用程序是否有权发布通知。
static int getActiveNotificationNums() 获取系统中当前应用的活动通知数。
static SetNotificationRequest getActiveNotifications() 获取系统中当前应用程序的活动通知。
static int getBundleImportance() 获取此应用程序的重要性级别。
static NotificationSortingMap getCurrentAppSorting() 获取当前应用的通知排序 map。
static String getNotificationAgent() 获取可以以您的应用程序名称发布通知的应用程序包的名称。
static NotificationSlot getNotificationSlot(String slotId) 查询已创建的通知槽。
static NotificationSlotGroup getNotificationSlotGroup(String slotGroupId) 获取创建的通知槽组。
static ListNotificationSlotGroup getNotificationSlotGroups() 获取创建的通知槽组列表。
static ListNotificationSlot getNotificationSlots() 获取该应用的所有通知槽。
static boolean hasNotificationPolicyAccessPermission() 检查此应用程序是否有权修改请勿打扰 (DND) 通知策略。
static boolean isAllowedNotify() 检查此应用程序是否有权发布通知。
static void publishNotification(String label, NotificationRequest request) 发布带有指定标签的通知。
static void publishNotification(NotificationRequest request) 发布通知。
static void publishNotification(NotificationRequest request, String deviceId) 在指定的远程设备上发布通知。
static void publishNotificationAsBundle(String representativeBundle, NotificationRequest request) 以指定应用程序包的名称发布通知。
static void removeNotificationSlot(String slotId) 根据槽位 ID 删除创建的通知槽位。
static void removeNotificationSlotGroup(String slotGroupId) 根据槽组 ID 删除创建的通知槽组。
static void setNotificationAgent(String agent) 允许另一个应用程序充当代理以您的应用程序包的名称发布通知。
static void setNotificationBadgeNum() 将当前应用程序的活动通知数量设置为要在通知徽章上显示的数量。
static void setNotificationBadgeNum(int num) 设置要在应用程序的通知徽章上显示的数字。
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

方法详情

publishNotification

public static void publishNotification(NotificationRequest request) throws RemoteException

发布通知。

如果当前应用已经发布了相同 ID 的通知并且没有被删除,则该方法会更新通知。

参数:

参数名称 参数描述
request 表示用于设置通知内容的 NotificationRequest 对象。 必须指定此参数。

Throws:

Throw名称 Throw描述
RemoteException 如果发生 IPC 异常,则抛出此异常。
IllegalArgumentException 如果请求为空,则抛出此异常。

Since:

1

publishNotification

public static void publishNotification(String label, NotificationRequest request) throws RemoteException

发布带有指定标签的通知。

如果当前应用已经发布了相同 ID 的通知并且没有被删除,则该方法会更新通知。

参数:

参数名称 参数描述
label 指示要发布的通知的标签。
request 表示用于设置通知内容的 NotificationRequest 对象。 必须指定此参数。

Throws:

Throw名称 Throw描述
RemoteException 如果发生 IPC 异常,则抛出此异常。
IllegalArgumentException 如果请求为空,则抛出此异常。

Since:

1

publishNotification

public static void publishNotification(NotificationRequest request, String deviceId) throws RemoteException

在指定的远程设备上发布通知。

如果当前应用已经发布了相同 ID 的通知并且没有被删除,则该方法会更新通知。

参数:

参数名称 参数描述
request 表示用于设置通知内容的 NotificationRequest 对象。 必须指定此参数。
deviceId 表示对端设备的ID。 如果此参数为空或空字符串,则通知将在本地设备上发布。

Throws:

Throw名称 Throw描述
RemoteException 如果发生 IPC 异常,则抛出此异常。
IllegalArgumentException 如果请求为空,则抛出此异常。

Since:

3

cancelNotification

public static void cancelNotification(int notificationId) throws RemoteException

取消已发布的通知。

参数:

参数名称 参数描述
notificationId 指示应用程序中的唯一通知 ID。 该值必须是已发布通知的 ID。 否则,此方法不生效。

Throws:

Throw名称 Throw描述
RemoteException 如果发生 IPC 异常,则抛出此异常。

Since:

1

cancelAllNotifications

public static void cancelAllNotifications() throws RemoteException

取消所有已发布的通知。

Throws:

Throw名称 Throw描述
RemoteException 如果发生 IPC 异常,则抛出此异常。

Since:

1

addNotificationSlot

public static void addNotificationSlot(NotificationSlot slot) throws RemoteException

创建一个通知槽。 您可以调用 NotificationRequest#setSlotId(String) 方法来绑定用于发布的槽。

NotificationSlot 实例初始化后不能直接使用。 相反,您必须调用此方法来创建通知槽并将槽 ID 绑定到 NotificationRequest 对象,以便发布的通知可以具有 NotificationSlot 中设置的所有特征。

使用该方法创建通知槽后,只能更改通知槽的名称和描述。 对其他属性的更改,例如振动状态和通知音,将不再生效。

参数:

参数名称 参数描述
slot 表示要创建的通知槽,由 NotificationSlot 设置。 必须指定此参数。

Throws:

Throw名称 Throw描述
RemoteException 如果发生 IPC 异常,则抛出此异常。
IllegalArgumentException 如果 slot 为空,则抛出此异常。

Since:

1

removeNotificationSlot

public static void removeNotificationSlot(String slotId) throws RemoteException

根据槽位 ID 删除创建的通知槽位。

参数:

参数名称 参数描述
slotId 槽的ID,由addNotificationSlot(ohos.event.notification.NotificationSlot)创建。 必须指定此参数。

Throws:

Throw名称 Throw描述
RemoteException 如果 slotId 为 null 或空字符串,或者发生 IPC 异常,则引发此异常。

Since:

1

getNotificationSlot

public static NotificationSlot getNotificationSlot(String slotId) throws RemoteException

查询已创建的通知槽。

参数:

参数名称 参数描述
slotId 槽的ID,由addNotificationSlot(ohos.event.notification.NotificationSlot)创建。 必须指定此参数。

返回:

返回创建的 NotificationSlot。

Throws:

Throw名称 Throw描述
RemoteException 如果 slotId 为 null 或空字符串,或者发生 IPC 异常,则引发此异常。

Since:

1

getActiveNotifications

public static SetNotificationRequest getActiveNotifications() throws RemoteException

获取系统中当前应用程序的活动通知。

返回:

返回当前应用程序的活动 NotificationRequest 对象。

Throws:

Throw名称 Throw描述
RemoteException 如果发生 IPC 异常,则抛出此异常。

Since:

1

getActiveNotificationNums

public static int getActiveNotificationNums() throws RemoteException

获取系统中当前应用的活动通知数。

返回:

返回当前应用程序的活动通知数。

Throws:

Throw名称 Throw描述
RemoteException 如果发生 IPC 异常,则抛出此异常。

Since:

1

setNotificationBadgeNum

public static void setNotificationBadgeNum(int num) throws RemoteException

设置要在应用程序的通知徽章上显示的数字。

参数:

参数名称 参数描述
num 表示要显示的数字。 负数表示徽章设置保持不变。 值 0 表示应用程序图标上不显示任何标记。 如果值大于 99,将显示 99+。

Throws:

Throw名称 Throw描述
RemoteException 如果发生 IPC 异常,则抛出此异常。

Since:

3

setNotificationBadgeNum

public static void setNotificationBadgeNum() throws RemoteException

将当前应用程序的活动通知数量设置为要在通知徽章上显示的数量。

Throws:

Throw名称 Throw描述
RemoteException 如果发生 IPC 异常,则抛出此异常。

Since:

1

getCurrentAppSorting

public static NotificationSortingMap getCurrentAppSorting() throws RemoteException

获取当前应用的通知排序地图。

返回:

返回当前应用程序的 NotificationSortingMap 对象。

Throws:

Throw名称 Throw描述
RemoteException 如果发生 IPC 异常,则抛出此异常。

Since:

2

addNotificationSlotGroup

public static void addNotificationSlotGroup(NotificationSlotGroup slotGroup) throws RemoteException

创建一个通知槽组,通过调用 NotificationSlot#setSlotGroup(String) 可以将 NotificationSlot 对象绑定到该组。

NotificationSlotGroup 实例初始化后不能直接使用。 相反,您必须调用此方法来创建通知槽组,以便您可以将 NotificationSlot 对象绑定到它。

参数:

参数名称 参数描述
slotGroup 表示要创建的通知槽组,由 NotificationSlotGroup 设置。 必须指定此参数。

Throws:

Throw名称 Throw描述
RemoteException 如果发生 IPC 异常,则抛出此异常。
IllegalArgumentException 如果 slotGroup 为 null,则引发此异常。

Since:

3

addNotificationSlotGroups

public static void addNotificationSlotGroups(ListNotificationSlotGroup slotGroups) throws RemoteException

创建多个通知槽组。

使用该方法的注意事项与 addNotificationSlotGroup(ohos.event.notification.NotificationSlotGroup) 的注意事项类似。

参数:

参数名称 参数描述
slotGroups 指示要创建的 NotificationSlotGroup 对象列表。 此参数不能为空。

Throws:

Throw名称 Throw描述
RemoteException 如果发生 IPC 异常,则抛出此异常。
IllegalArgumentException 如果 slotGroups 为空,则引发此异常。

Since:

3

removeNotificationSlotGroup

public static void removeNotificationSlotGroup(String slotGroupId) throws RemoteException

根据槽组ID删除创建的通知槽组。

参数:

参数名称 参数描述
slotGroupId 通知槽组ID,由addNotificationSlotGroup(ohos.event.notification.NotificationSlotGroup)创建。 必须指定此参数。

Throws:

Throw名称 Throw描述
RemoteException 如果 slotGroupId 为 null 或空字符串,或者发生 IPC 异常,则引发此异常。

Since:

3

getNotificationSlotGroup

public static NotificationSlotGroup getNotificationSlotGroup(String slotGroupId) throws RemoteException

获取创建的通知槽组。

参数:

参数名称 参数描述
slotGroupId 通知槽组ID,由addNotificationSlotGroup(ohos.event.notification.NotificationSlotGroup)创建。 必须指定此参数。

返回:

返回创建的 NotificationSlotGroup。

Throws:

Throw名称 Throw描述
RemoteException 如果 slotGroupId 为 null 或空字符串,或者发生 IPC 异常,则引发此异常。

Since:

3

hasNotificationPolicyAccessPermission

public static boolean hasNotificationPolicyAccessPermission() throws RemoteException

检查此应用程序是否有权修改请勿打扰 (DND) 通知策略。

返回:

如果此应用程序具有权限,则返回 true; 否则返回 false。

Throws:

Throw名称 Throw描述
RemoteException 如果发生 IPC 异常,则抛出此异常。

Since:

3

addNotificationSlots

public static void addNotificationSlots(ListNotificationSlot slots) throws RemoteException

创建多个通知槽。

参数:

参数名称 参数描述
slots 指示要创建的通知槽。

Throws:

Throw名称 Throw描述
RemoteException 如果发生 IPC 异常,则抛出此异常。
IllegalArgumentException 如果 slot 为空,则引发此异常。

Since:

3

getNotificationSlots

public static ListNotificationSlot getNotificationSlots() throws RemoteException

获取该应用的所有通知槽。

返回:

返回此应用程序的所有通知槽。

Throws:

Throw名称 Throw描述
RemoteException 如果发生 IPC 异常,则抛出此异常。

Since:

3

publishNotificationAsBundle

public static void publishNotificationAsBundle(String representativeBundle, NotificationRequest request) throws RemoteException

以指定应用程序包的名称发布通知。 如果要发布的通知与未取消的已发布通知具有相同的 ID,则现有通知将被新通知替换。

参数:

参数名称 参数描述
representativeBundle 指示允许您的应用程序通过调用 setNotificationAgent(java.lang.String) 为其发布通知的应用程序包的名称。
request 指示要发布的 NotificationRequest 对象。

Throws:

Throw名称 Throw描述
RemoteException 如果发生 IPC 异常,则抛出此异常。
IllegalArgumentException 如果request 或representativeBundle 为null 或representativeBundle 为空字符串,则引发此异常。

Since:

3

setNotificationAgent

public static void setNotificationAgent(String agent) throws RemoteException

允许另一个应用程序充当代理以您的应用程序包的名称发布通知。 您可以通过将 null 传递给此方法来撤销此授权。

参数:

参数名称 参数描述
agent 指示可以为您的应用程序发布通知的应用程序包的名称。

Throws:

Throw名称 Throw描述
RemoteException 如果发生 IPC 异常,则抛出此异常。

Since:

3

getNotificationAgent

public static String getNotificationAgent() throws RemoteException

获取可以以您的应用程序名称发布通知的应用程序包的名称。

返回:

返回可以为您的应用程序发布通知的应用程序包的名称(如果有); 否则返回 null。

Throws:

Throw名称 Throw描述
RemoteException 如果发生 IPC 异常,则抛出此异常。

Since:

3

canPublishNotificationAsBundle

public static boolean canPublishNotificationAsBundle(String representativeBundle) throws RemoteException

通过以给定代表包指示的另一个应用程序的名称调用 publishNotificationAsBundle(java.lang.String,ohos.event.notification.NotificationRequest) 来检查您的应用程序是否有权发布通知。

参数:

参数名称 参数描述
representativeBundle 指示您的应用程序所代表的应用程序包的名称。

返回:

如果您的应用程序可以为给定的代表包发布通知,则返回 true; 否则返回 false。

Throws:

Throw名称 Throw描述
RemoteException 如果发生 IPC 异常,则抛出此异常。
IllegalArgumentException 如果代表捆绑为空,则引发此异常。

Since:

3

getNotificationSlotGroups

public static ListNotificationSlotGroup getNotificationSlotGroups() throws RemoteException

获取创建的通知槽组列表。

返回:

返回已创建通知槽组的列表。

Throws:

Throw名称 Throw描述
RemoteException 如果发生 IPC 异常,则抛出此异常。

Since:

3

isAllowedNotify

public static boolean isAllowedNotify() throws RemoteException

检查此应用程序是否有权发布通知。

返回:

如果此应用程序具有权限,则返回 true; 否则返回 false。

Throws:

Throw名称 Throw描述
RemoteException 如果发生 IPC 异常,则抛出此异常。

Since:

3

areNotificationsSuspended

public static boolean areNotificationsSuspended() throws RemoteException

检查此应用程序是否处于挂起状态。 此状态下的应用程序无法发布通知。

返回:

如果此应用程序被挂起,则返回 true; 否则返回 false。

Throws:

Throw名称 Throw描述
RemoteException 如果发生 IPC 异常,则抛出此异常。

Since:

3

getBundleImportance

public static int getBundleImportance() throws RemoteException

获取此应用程序的重要性级别。

返回:

返回此应用程序的重要性级别,可以是 NotificationSlot#LEVEL_NONE、NotificationSlot#LEVEL_MIN、NotificationSlot#LEVEL_LOW、NotificationSlot#LEVEL_DEFAULT、NotificationSlot#LEVEL_HIGH 或 NotificationSlot#LEVEL_UNDEFINED。

Throws:

Throw名称 Throw描述
RemoteException 如果发生 IPC 异常,则抛出此异常。

Since:

3

cancelNotification

public static void cancelNotification(String label, int notificationId) throws RemoteException

取消与指定标签和 notificationId 匹配的已发布通知。

参数:

参数名称 参数描述
label 指示要取消的通知的标签。
notificationId 指示要取消的通知的 ID。

Throws:

Throw名称 Throw描述
RemoteException 如果发生 IPC 异常,则抛出此异常。

Since:

3