【鸿蒙开发】接收通知

ZJKJTL 2021-08-07 00:02:11

 在开发过程中我我们可能需要接收一些通知,例如网络的改变,蓝牙的连接,短信接收等等。有助于我们为用户提供更好的体验。

首先我们需要创建通知的订阅者,需要继承CommonEventSubscriber类并实现其抽象方法。

public class MyCommonEventSubscriber extends CommonEventSubscriber {
    private static final HiLogLabel LABEL_LOG = new HiLogLabel(3, 0xD001100, "MyCommonEventSubscriber");

    public MyCommonEventSubscriber(CommonEventSubscribeInfo subscribeInfo) {
        super(subscribeInfo);
    }

    @Override
    public void onReceiveEvent(CommonEventData commonEventData) {
        // 当应用程序收到新的公共事件时回调
        Intent intent = commonEventData.getIntent();

        // 判断动作类型
        switch (intent.getAction()){
            case CommonEventSupport.COMMON_EVENT_CONFIGURATION_CHANGED:
                HiLog.info(LABEL_LOG,"屏幕旋转");
                break;

            case CommonEventSupport.COMMON_EVENT_SCREEN_ON:
                HiLog.info(LABEL_LOG,"亮屏");
                break;

            default:
                break;
        }
    }
}

然后需要在Ability中设置我们需要订阅哪些通知。

MatchingSkills matchingSkills = new MatchingSkills();
matchingSkills.addEvent(CommonEventSupport.COMMON_EVENT_SCREEN_ON); // 亮屏事件
matchingSkills.addEvent(CommonEventSupport.COMMON_EVENT_CONFIGURATION_CHANGED); // 屏幕旋转事件
CommonEventSubscribeInfo subscribeInfo = new CommonEventSubscribeInfo(matchingSkills);
MyCommonEventSubscriber subscriber = new MyCommonEventSubscriber(subscribeInfo);
try {
    CommonEventManager.subscribeCommonEvent(subscriber);
} catch (RemoteException e) {
    e.printStackTrace();
}

启动对应的Ability就可以接收通知了。具体支持哪些通知我们可以看看CommonEventSupport类 

...全文
1152 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-HarmonyOS 发布问题, 以便更快地解决您的疑问
内容概要:本文详细介绍了HarmonyOS操作系统中网络连接管理模块的功能和实现步骤,重点讲解了如何精准捕捉指定网络状态变化。HarmonyOS的网络连接管理模块涵盖了WiFi、蜂窝、Ethernet等多种网络连接的优先级管理和质量评估,支持订阅网络状态变化、查询网络信息、DNS解析等功能。文章通过具体的应用场景如在线视频播放和视频会议,展示了接收网络状态变化通知的重要性。实现步骤包括权限声明、导入命名空间、创建NetConnection对象、订阅事件、注册通知以及取消订阅。此外,还强调了API版本兼容性和开发语言的选择,并展望了该功能在智能家居和智能健康监测设备中的应用前景。 适合人群:具备一定HarmonyOS开发基础,尤其是对网络连接管理和状态监测感兴趣的开发者。 使用场景及目标:①帮助开发者理解HarmonyOS网络连接管理模块的核心功能和实现机制;②指导开发者通过具体步骤实现对指定网络状态变化的监测,提升应用在网络环境变化下的响应能力和用户体验。 阅读建议:本文不仅提供了详细的实现步骤和技术细节,还结合了实际应用场景,因此在阅读时应重点关注实现步骤和应用场景的结合,理解每一环节的作用及其在实际开发中的应用。同时,注意API版本的兼容性和开发语言的选择,确保开发环境符合要求。

5,342

社区成员

发帖
与我相关
我的任务
社区描述
HarmonyOS是一款“面向未来”、面向全场景的分布式操作系统。在传统的单设备系统能力的基础上,HarmonyOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持多种终端设备。
分布式学习 企业社区
社区管理员
  • HarmonyOS技术社区
  • Edice
  • BaoWei
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧