鴻蒙OS WLAN消息通知

2020-09-18 15:40 更新

場景介紹

WLAN 消息通知(Notification)是 HarmonyOS 內(nèi)部或者與應(yīng)用之間跨進(jìn)程通訊的機(jī)制,注冊者在注冊消息通知后,一旦符合條件的消息被發(fā)出,注冊者即可接收到該消息并獲取消息中附帶的信息。

接口說明

描述 通知名 附加參數(shù)
WLAN狀態(tài) usual.event.wifi.POWER_STATE active_state
WLAN掃描 usual.event.wifi.SCAN_FINISHED scan_state
WLAN RSSI變化 usual.event.wifi.RSSI_VALUE rssi_value
WLAN連接狀態(tài) usual.event.wifi.CONN_STATE conn_state
Hotspot狀態(tài) usual.event.wifi.HOTSPOT_STATE hotspot_active_state
Hotspot連接狀態(tài) usual.event.wifi.WIFI_HS_STA_JOIN usual.event.wifi.WIFI_HS_STA_LEAVE -
P2P狀態(tài) usual.event.wifi.p2p.STATE_CHANGE p2p_state
P2P連接狀態(tài) usual.event.wifi.p2p.CONN_STATE_CHANGE linked_infonet_infogroup_info
P2P設(shè)備列表變化 usual.event.wifi.p2p.PEERS_STATE_CHANGE peers_list
P2P搜索狀態(tài)變化 usual.event.wifi.p2p.PEER_DISCOVERY_STATE_CHANGE peers_discovery
P2P當(dāng)前設(shè)備變化 usual.event.wifi.p2p.CURRENT_DEVICE_CHANGE p2p_device
P2P群組信息變化 usual.event.wifi.p2p.GROUP_STATE_CHANGED -

開發(fā)步驟

  1. 構(gòu)建消息通知接收者 WifiEventSubscriber。

  1. 注冊 WLAN 變化消息。

  1. WifiEventSubscriber 接收并處理 WLAN 廣播消息。

   // 構(gòu)建消息接收者/注冊者
   class WifiEventSubscriber extends CommonEventSubscriber {
       WifiEventSubscriber (CommonEventSubscribeInfo info) {
           super(info);
       }

    
       @Override
       public void onReceiveEvent(CommonEventData commonEventData) {
           if (WifiEvents.EVENT_ACTIVE_STATE.equals(commonEventData.getIntent().getAction())) {
               // 獲取附帶參數(shù)
               IntentParams params = commonEventData.getIntent().getParams();
               if (params == null) {
                   return;
               }
               int wifiState= (int) params.getParam(WifiEvents.PARAM_ACTIVE_STATE);

               
               if (wifiState== WifiEvents.STATE_ACTIVE) { // 處理WLAN被打開消息
                   HiLog.info(LABEL, false, "Receive WifiEvents.STATE_ACTIVE %{public}d", wifiState);
               } else if (wifiState == WifiEvents.STATE_INACTIVE) { // 處理WLAN被關(guān)閉消息  
                   HiLog.info(LABEL, false, "Receive WifiEvents.STATE_INACTIVE %{public}d", wifiState);
               } else { // 處理WLAN異常狀態(tài)
                   HiLog.info(LABEL, false, "Unknown wifi state");
               }
           }
       }
   }

    
   // 注冊消息
   MatchingSkills match = new MatchingSkills();
   // 增加獲取WLAN狀態(tài)變化消息
   filter.addEvent(WifiEvents.EVENT_ACTIVE_STATE);
   CommonEventSubscribeInfo subscribeInfo = new CommonEventSubscribeInfo(match);
   subscribeInfo.setPriority(100); 
   WifiEventSubscriber subscriber = new WifiEventSubscriber(subscribeInfo);

    
   try {
       CommonEventManager.subscribeCommonEvent(subscriber);
   } catch (RemoteException e) {
       HiLog.warn(LABEL, false, "subscribe in wifi events failed!");
   }
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號