通知还是比价简单的,很容易就实现。
首先,实现一个NotificationSlot,用来设置通知的方式和等级
private NotificationSlot slot;
private void initNotificationSlot() {
slot = new NotificationSlot("slot_001","slot_default", NotificationSlot.LEVEL_MIN); // 创建notificationSlot对象
slot.setDescription("NotificationSlotDescription");
slot.setEnableVibration(true); // 设置振动提醒
slot.setLockscreenVisibleness(NotificationRequest.VISIBLENESS_TYPE_PUBLIC);//设置锁屏模式
slot.setEnableLight(true); // 设置开启呼吸灯提醒
slot.setLedLightColor(Color.RED.getValue());// 设置呼吸灯的提醒颜色
try {
NotificationHelper.addNotificationSlot(slot);
} catch (RemoteException ex) {
HiLog.warn(LABEL, "addNotificationSlot occur exception.");
}
}
然后就可以定义一个通知,并发布:
private int notificationId=1;
private void publishNotification() {
NotificationRequest request = new NotificationRequest(notificationId);
request.setSlotId(slot.getId());
String title = "机密信息";
String text = "有内鬼,停止交易";
NotificationRequest.NotificationNormalContent content = new NotificationRequest.NotificationNormalContent();
content.setTitle(title)
.setText(text);
NotificationRequest.NotificationContent notificationContent = new NotificationRequest.NotificationContent(content);
request.setGroupValue("群组信息");
request.setProgressBar(20,100,true);
request.setContent(notificationContent); // 设置通知的内容
try {
NotificationHelper.publishNotification(request);
} catch (RemoteException ex) {
HiLog.warn(LABEL, "publishNotification occur exception.");
}
}
还可以取消这个通知:
private void cancelNotification() {
try {
NotificationHelper.cancelNotification(notificationId);
} catch (RemoteException ex) {
HiLog.warn(LABEL, "cancelNotification occur exception.");
}
}
鸿蒙的通知有很多样式,可以设置图标,时间,倒计时,图片,按钮,具体参考官方文档。