成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

鴻蒙FA智能家居NFC碰一碰應用

系統
鴻蒙FA“NFC碰一碰”主要是利用NFC“碰一碰”喚起鴻蒙FA應用,根據NFC通信拿到的設備信息,然后登錄關聯華為賬號,進行配網,配網成功后就可以實現遠程控制。

[[411007]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

隨著物聯網時代的到來,鴻蒙發展越來越好,萬物互聯的時代即將到來。接下來將會講講我接觸鴻蒙FA開發。

鴻蒙FA“NFC碰一碰”主要是利用NFC“碰一碰”喚起鴻蒙FA應用,根據NFC通信拿到的設備信息,然后登錄關聯華為賬號,進行配網,配網成功后就可以實現遠程控制。

1、首先我們創建一個js的Ability,如圖顯示。

鴻蒙FA智能家居NFC碰一碰應用-鴻蒙HarmonyOS技術社區

2、在entry的main->java包里的MainAbility的onStart和onNewIntent獲取碰一碰的設備信息。代碼如下:

  1. @Override 
  2.    public void onStart(Intent intent) { 
  3.        intent.setParam("window_modal",3); 
  4.        HmsBridge.getInstance().initBridge(this); 
  5.        // 獲取sn和sessionId 
  6.        String nanSessionId = intent.getStringParam("nanSessionId"); 
  7.        // 注冊配網har包 
  8.        NetConfigAbility.register(this, nanSessionId); 
  9.        Object businessInfo = intent.getParams().getParam("businessInfo"); 
  10.        String sn = ""
  11.        if (businessInfo != null) { 
  12.            ZSONObject businessInfoZson = ZSONObject.classToZSON(businessInfo); 
  13.            sn = businessInfoZson.getZSONObject("params").getString(""); 
  14.        } 
  15.        super.onStart(intent); 
  16.    } 
  1. @Override 
  2.   // Fa正在運行,又重新掃一次 
  3.   public void onNewIntent(Intent intent) { 
  4.       // 獲取sn和sessionId 
  5.       String nanSessionId = intent.getStringParam("nanSessionId"); 
  6.       Object businessInfo = intent.getParams().getParam("businessInfo"); 
  7.       String sn = ""
  8.       if (businessInfo != null) { 
  9.           ZSONObject businessInfoZson = ZSONObject.classToZSON(businessInfo); 
  10.           sn = businessInfoZson.getZSONObject("params").getString(""); 
  11.       } 
  12.  } 

3、關聯華為賬號,華為授權登錄流程圖如下。

鴻蒙FA智能家居NFC碰一碰應用-鴻蒙HarmonyOS技術社區
  1. 下面是華為的登錄授權接口和退出接口。 
  2. // -------------------華為授權登錄---------------------- 
  3. 引入鴻蒙sdk 
  4. import {HuaweiIdAuthParamsHelper, HuaweiIdAuthManager, OPENID, PROFILE, GAMES, Scope} from '@hmscore/hms-js-account' 
  5.  
  6.     signIn: function () { 
  7.         var that = this 
  8.         // 新增scopeList 
  9.         var scopeList = new Array(); 
  10.         scopeList.push(OPENID); 
  11.         scopeList.push(PROFILE); 
  12.         var healthbehavior = new Scope("https://www.huawei.com/healthkit/extend/healthbehavior.read"); 
  13.         var hearthealthsleep = new Scope("https://www.huawei.com/healthkit/extend/hearthealthsleep.read"); 
  14.         var fatreduction = new Scope("https://www.huawei.com/healthkit/extend/fatreduction.read"); 
  15.         var sport = new Scope("https://www.huawei.com/healthkit/extend/sport.read"); 
  16.         scopeList.push(healthbehavior); 
  17.         scopeList.push(hearthealthsleep); 
  18.         scopeList.push(fatreduction); 
  19.         scopeList.push(sport); 
  20.  
  21.         var opencloud = new Scope("https://www.huawei.com/auth/smarthome/opencloud"); 
  22.         scopeList.push(opencloud); 
  23.  
  24.         var signInOption = new HuaweiIdAuthParamsHelper().setId().setProfile().setMobileNumber().setAuthorizationCode().setScopeList(scopeList).build(); 
  25.         console.error(JSON.stringify(signInOption)); 
  26.         HuaweiIdAuthManager.getAuthApi().getSignInIntent(signInOption).then((result)=>{ 
  27.  
  28.             var authCode = result.serverAuthCode; 
  29.             var accessToken = result.accessToken; 
  30.             var unionId = result.unionId; 
  31.         }).catch((error)=>{ 
  32.  
  33.         }); 
  34.     }, 
  35.     signOut: function () { 
  36.         HuaweiIdAuthManager.getAuthApi().signOut().then((result)=>{ 
  37.     
  38.         }).catch((error) => { 
  39.             console.error("signout fail"); 
  40.         }); 
  41.     }, 

4、關聯華為賬號后,開始配網了,主要是NAN和AP配網:

在第二步驟獲取的nanSessionId,如果不是NAN_DEVICE_NOT_FOUND,那么可以走NAN配網流程,否則走Ap配網。具體配網步驟如下:

引入華為的配網模塊。

 

NAN配網

  1. 操作設備上配網鍵讓設備進入配網模式
  2. 手機碰一碰設備上的NFC標簽,拉起輕應用
  3. 選擇配網wifi
  4. 調用 discoveryByNAN接口 code為0
  5. 調用 connectDevice接口 連接設備
  6. 調用 configDeviceNet接口 開始配網
  7. 調用 disconnectDevice接口 斷開網絡
  8. 調用檢測設備是否上線接口
  9. 檢測到設備上線,調用綁定設備接口

AP配網

  1. 操作設備上配網鍵讓設備進入配網模式
  2. 手機碰一碰設備上的NFC標簽,拉起輕應用
  3. 選擇配網wifi
  4. 調用 discoveryByNAN接口 code不為0
  5. 調用 discoveryBySoftAp接口 搜索當前設備的ap,搜索不到的話嘗試直接去連接ap
  6. 調用 connectDevice接口 連接設備
  7. 調用 configDeviceNet接口 開始配網
  8. 調用 disconnectDevice接口 斷開網絡
  9. 調用檢測設備是否上線接口
  10. 檢測到設備上線,調用綁定設備接口

5、配完成功后就可以跳到設備控制頁進行一些列的設備操控了。

6、過程運到的一些問題如下以及解決方案:

EMUI的版本下,如果串行顯示多個彈窗的操作或者別的渲染時,會白屏?

  1. 解決方法是讓某個視圖稍微延時渲染。 

EMUI的版本下,有時如果界面渲染情況復雜,會出現某個div顯示與否,在使用if來控制顯示的時候,可能會出現白屏。

  1. 這種情況使用div的屬性show會解決這個問題,用if的時候會改變渲染樹的結構,使用show避免這個問題。 

在使用畫布的時候,如果數據發生改變重繪制時,會出數據重繪錯亂。

  1. 需要先清除繪制,然后在進行繪制 

在Ide升級到 Build Version: 2.1.0.501以上,在適配compileSdkVersion和compatibleSdkVersion版本時,不需要在config.js里設置了,config.js設置無效,得在build.grade里設置適配的版本好了。

以上主要是我們團隊在開發鴻蒙FA智能家居NFC碰一碰應用時的一些問題和見解。

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2022-12-23 20:46:37

遙控器應用鴻蒙

2022-01-17 14:51:20

鴻蒙HarmonyOS應用

2021-12-28 16:10:20

鴻蒙HarmonyOS應用

2022-05-19 15:47:24

碰一碰連接設備開發鴻蒙

2022-05-17 10:33:58

設備開發鴻蒙操作系統

2021-02-23 19:24:51

數字人民幣碰一碰支付

2023-02-03 16:31:33

2021-03-20 22:11:16

數字人民幣數字貨幣區塊鏈
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: ww亚洲ww亚在线观看 | 九九亚洲精品 | 在线看h| 91在线观看免费视频 | www日本在线 | 99久久免费精品国产免费高清 | 国产午夜视频 | 欧美8一10sex性hd | 久久精品视频网站 | 国产欧美精品一区二区三区 | 久久九九影视 | 正在播放国产精品 | 激情网站| 91精品国产乱码久久久久久久 | 色婷婷一区二区三区四区 | 亚洲国产精品人人爽夜夜爽 | 日韩高清三区 | 色偷偷噜噜噜亚洲男人 | 91伦理片 | 国产精品视频不卡 | 国产精品一区二区久久久久 | 亚洲欧美激情精品一区二区 | 日韩在线精品 | 天天操天天玩 | 最新国产精品精品视频 | 欧美网站一区二区 | 国产情侣一区 | 成人av播放 | 国产精品无码久久久久 | 最新一级毛片 | 色综合久久天天综合网 | 亚洲视频免费在线观看 | 一级免费在线视频 | 久草免费在线视频 | 国产免费a视频 | 日本色婷婷 | 99久久久久久99国产精品免 | 亚洲精品电影在线观看 | 欧美精品在线免费 | 欧美精品片 | 欧美在线色|