自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

鴻蒙FA智能家居NFC碰一碰應(yīng)用

系統(tǒng)
鴻蒙FA“NFC碰一碰”主要是利用NFC“碰一碰”喚起鴻蒙FA應(yīng)用,根據(jù)NFC通信拿到的設(shè)備信息,然后登錄關(guān)聯(lián)華為賬號,進(jìn)行配網(wǎng),配網(wǎng)成功后就可以實(shí)現(xiàn)遠(yuǎn)程控制。

[[411007]]

想了解更多內(nèi)容,請?jiān)L問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

隨著物聯(lián)網(wǎng)時(shí)代的到來,鴻蒙發(fā)展越來越好,萬物互聯(lián)的時(shí)代即將到來。接下來將會講講我接觸鴻蒙FA開發(fā)。

鴻蒙FA“NFC碰一碰”主要是利用NFC“碰一碰”喚起鴻蒙FA應(yīng)用,根據(jù)NFC通信拿到的設(shè)備信息,然后登錄關(guān)聯(lián)華為賬號,進(jìn)行配網(wǎng),配網(wǎng)成功后就可以實(shí)現(xiàn)遠(yuǎn)程控制。

1、首先我們創(chuàng)建一個(gè)js的Ability,如圖顯示。

鴻蒙FA智能家居NFC碰一碰應(yīng)用-鴻蒙HarmonyOS技術(shù)社區(qū)

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

  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.        // 注冊配網(wǎng)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正在運(yùn)行,又重新掃一次 
  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、關(guān)聯(lián)華為賬號,華為授權(quán)登錄流程圖如下。

鴻蒙FA智能家居NFC碰一碰應(yīng)用-鴻蒙HarmonyOS技術(shù)社區(qū)
  1. 下面是華為的登錄授權(quán)接口和退出接口。 
  2. // -------------------華為授權(quán)登錄---------------------- 
  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、關(guān)聯(lián)華為賬號后,開始配網(wǎng)了,主要是NAN和AP配網(wǎng):

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

引入華為的配網(wǎng)模塊。

 

NAN配網(wǎng)

  1. 操作設(shè)備上配網(wǎng)鍵讓設(shè)備進(jìn)入配網(wǎng)模式
  2. 手機(jī)碰一碰設(shè)備上的NFC標(biāo)簽,拉起輕應(yīng)用
  3. 選擇配網(wǎng)wifi
  4. 調(diào)用 discoveryByNAN接口 code為0
  5. 調(diào)用 connectDevice接口 連接設(shè)備
  6. 調(diào)用 configDeviceNet接口 開始配網(wǎng)
  7. 調(diào)用 disconnectDevice接口 斷開網(wǎng)絡(luò)
  8. 調(diào)用檢測設(shè)備是否上線接口
  9. 檢測到設(shè)備上線,調(diào)用綁定設(shè)備接口

AP配網(wǎng)

  1. 操作設(shè)備上配網(wǎng)鍵讓設(shè)備進(jìn)入配網(wǎng)模式
  2. 手機(jī)碰一碰設(shè)備上的NFC標(biāo)簽,拉起輕應(yīng)用
  3. 選擇配網(wǎng)wifi
  4. 調(diào)用 discoveryByNAN接口 code不為0
  5. 調(diào)用 discoveryBySoftAp接口 搜索當(dāng)前設(shè)備的ap,搜索不到的話嘗試直接去連接ap
  6. 調(diào)用 connectDevice接口 連接設(shè)備
  7. 調(diào)用 configDeviceNet接口 開始配網(wǎng)
  8. 調(diào)用 disconnectDevice接口 斷開網(wǎng)絡(luò)
  9. 調(diào)用檢測設(shè)備是否上線接口
  10. 檢測到設(shè)備上線,調(diào)用綁定設(shè)備接口

5、配完成功后就可以跳到設(shè)備控制頁進(jìn)行一些列的設(shè)備操控了。

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

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

  1. 解決方法是讓某個(gè)視圖稍微延時(shí)渲染。 

EMUI的版本下,有時(shí)如果界面渲染情況復(fù)雜,會出現(xiàn)某個(gè)div顯示與否,在使用if來控制顯示的時(shí)候,可能會出現(xiàn)白屏。

  1. 這種情況使用div的屬性show會解決這個(gè)問題,用if的時(shí)候會改變渲染樹的結(jié)構(gòu),使用show避免這個(gè)問題。 

在使用畫布的時(shí)候,如果數(shù)據(jù)發(fā)生改變重繪制時(shí),會出數(shù)據(jù)重繪錯(cuò)亂。

  1. 需要先清除繪制,然后在進(jìn)行繪制 

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

以上主要是我們團(tuán)隊(duì)在開發(fā)鴻蒙FA智能家居NFC碰一碰應(yīng)用時(shí)的一些問題和見解。

想了解更多內(nèi)容,請?jiān)L問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

 

責(zé)任編輯:jianghua 來源: 鴻蒙社區(qū)
相關(guān)推薦

2022-12-23 20:46:37

遙控器應(yīng)用鴻蒙

2022-01-17 14:51:20

鴻蒙HarmonyOS應(yīng)用

2021-12-28 16:10:20

鴻蒙HarmonyOS應(yīng)用

2022-05-19 15:47:24

碰一碰連接設(shè)備開發(fā)鴻蒙

2021-02-23 19:24:51

數(shù)字人民幣碰一碰支付

2022-05-17 10:33:58

設(shè)備開發(fā)鴻蒙操作系統(tǒng)

2023-02-03 16:31:33

2021-03-20 22:11:16

數(shù)字人民幣數(shù)字貨幣區(qū)塊鏈
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號