簡介
本文檔為幫助開發(fā)者快速將設(shè)備接入到數(shù)字管家,完成FA、服務(wù)端和設(shè)備的通信,實(shí)現(xiàn)數(shù)字管家對(duì)設(shè)備的命令控制、日程管理,以及設(shè)備對(duì)數(shù)字管家的主動(dòng)告警。
快速上手

1. 前提參考:
鴻蒙開發(fā)文檔:[docs.qq.com/doc/DUmN4VVhBd3NxdExK]
- IoT平臺(tái):完成IoT平臺(tái)新設(shè)備配置;
- 設(shè)備端:完成設(shè)備端的開發(fā)并定義好profile設(shè)備模型;
- 服務(wù)端:搭建并配置好了服務(wù)端;
- 數(shù)據(jù)庫:device_type表中添加好相關(guān)產(chǎn)品數(shù)據(jù);
2. 編寫設(shè)備控制頁面
- 在slice目錄下新建 xxxxSlice.java文件,通過 addActionRoute() 方法為此AbilitySlice配置一條路由規(guī)則,并且在在應(yīng)用配置文件(config.json)中注冊,


- 在resources->base->layout下新建對(duì)應(yīng)xml布局文件,在上述兩個(gè)文件中編寫相應(yīng)界面代碼。
3. 頁面邏輯與數(shù)據(jù)處理
- slice頁面獲取deviceId:在onStart中通過調(diào)用intent.getStringParam("deviceId") ,獲取設(shè)備標(biāo)識(shí)用于對(duì)設(shè)備進(jìn)行控制或者獲取設(shè)備信息。

- slice頁面獲取狀態(tài):對(duì)于可以主動(dòng)控制的設(shè)備,調(diào)用intent.getBooleanParam(KEY_IS_SET_COMMAND, false) ,用于判斷當(dāng)前狀態(tài)下是需要執(zhí)行命令,還是通過 [EventBus]將命令數(shù)據(jù)傳出用于日程對(duì)設(shè)備的編排之中。

- 編寫設(shè)備控制命令的獲取和解析方法:在CommandUtil中根據(jù)具體設(shè)備profile定義,來新增獲取命令和解析命令的方法,以供設(shè)備調(diào)用sendCommand來發(fā)送命令和在日程中來解析命令。


- 配置設(shè)備相關(guān)信息:在DeviceData類的initData方法中,根據(jù)設(shè)備productId添加設(shè)備圖片資源ID、跳轉(zhuǎn)的action參數(shù)和日程解析方法,配置完成后設(shè)備列表頁、日程頁面等都能通過該配置進(jìn)行圖片加載、路由跳轉(zhuǎn)和日程解析。

- 以上代碼邏輯處理和實(shí)現(xiàn)可參考LampAbilitySlice.java。
4. 接口對(duì)接
? 項(xiàng)目使用的網(wǎng)絡(luò)請求組件為RetrofitCache,項(xiàng)目中服務(wù)端api定義于ApiRx2,通過OKHttpUtilsRx2來實(shí)現(xiàn)異步調(diào)用。
- 若使用自己部署的服務(wù)端,須做如下修改: (1) 將OKHttpUtilsRx2類中SERVER_URL變量修改為自己的服務(wù)端api地址; (2) 將DeviceStateListener類中RABBITMQ_HOST變量修改為自己的服務(wù)端地址;
- 初始化設(shè)備狀態(tài):通過調(diào)用getDeviceInfo接口,傳入deviceId和userId來獲取,其中UserId在登錄時(shí)會(huì)儲(chǔ)存于Preferences輕量級(jí)數(shù)據(jù)存儲(chǔ)之中。

- 設(shè)備控制命令:通過調(diào)用sendCommand接口,傳入deviceId和命令json字符串來對(duì)指定設(shè)備進(jìn)行控制。


如何驗(yàn)證
1. 寫入NFC數(shù)據(jù)
根據(jù)設(shè)備定義好的設(shè)備profile模型,使用應(yīng)用調(diào)測組助手將tlv格式數(shù)據(jù)寫入NFC NFC數(shù)據(jù)寫入章節(jié)。
2. 對(duì)設(shè)備進(jìn)行碰一碰配網(wǎng)
將手機(jī)靠近NFC標(biāo)簽,可正常拉起數(shù)字管家,并開始無感配網(wǎng)。

3. 驗(yàn)證設(shè)備跳轉(zhuǎn)入口
- 在線設(shè)備貼近設(shè)備NFC標(biāo)簽碰一碰,可正常跳轉(zhuǎn)至應(yīng)用;

- 在首頁設(shè)備Tab和新增日程頁面的設(shè)備圖標(biāo)能正確顯示設(shè)備狀態(tài),在線設(shè)備點(diǎn)擊圖標(biāo)后可跳轉(zhuǎn)設(shè)備頁;

4. 驗(yàn)證功能
- 新增日程:在輸入成員、設(shè)備執(zhí)行動(dòng)作、執(zhí)行時(shí)間等后,日程頁面可看見新增的日程以及需執(zhí)行的動(dòng)作,在到達(dá)指定時(shí)間后所有設(shè)備能夠執(zhí)行預(yù)設(shè)動(dòng)作,并且相關(guān)成員手機(jī)會(huì)收到系統(tǒng)通知。

- 設(shè)備單點(diǎn)控制:進(jìn)入設(shè)備控制頁面,執(zhí)行控制操作設(shè)備能有相應(yīng)動(dòng)作執(zhí)行。

- 主動(dòng)告警:驗(yàn)證設(shè)備端能否通過AMQP通知到數(shù)字管家,例如智能垃圾桶檢測到垃圾桶已滿會(huì)通過服務(wù)端通知到相關(guān)用戶,并且能觸發(fā)鈴聲提醒和系統(tǒng)通知彈框。

審核編輯 黃宇
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報(bào)投訴
-
鴻蒙
+關(guān)注
關(guān)注
60文章
3018瀏覽量
46174 -
HarmonyOS
+關(guān)注
關(guān)注
80文章
2157瀏覽量
36293
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
熱點(diǎn)推薦
【HarmonyOS】開發(fā)跨設(shè)備的鴻蒙(HarmonyOS) App
是圓形(如智能手表),這就給開發(fā)App帶來了麻煩?,F(xiàn)在幾乎每一個(gè)智能設(shè)備廠商,如Apple、華為都面臨這個(gè)問題。這就要求我們開發(fā)的App盡可
發(fā)表于 11-02 15:18
【HarmonyOS】開發(fā)跨設(shè)備的鴻蒙(HarmonyOS)App
手表),這就給開發(fā)App帶來了麻煩。現(xiàn)在幾乎每一個(gè)智能設(shè)備廠商,如Apple、華為都面臨這個(gè)問題。這就要求我們開發(fā)的App盡可能適合更多的智
發(fā)表于 11-03 16:54
開發(fā)跨設(shè)備的鴻蒙(HarmonyOS) App
的屏幕,有的是橫向的屏幕,有的帶觸摸功能,有的不帶觸摸功能,甚至有的設(shè)備的屏幕是圓形(如智能手表),這就給開發(fā)App帶來了麻煩?,F(xiàn)在幾乎每一個(gè)智能設(shè)備廠商,如Apple、華為都面臨這個(gè)
發(fā)表于 11-13 09:38
如何優(yōu)雅地開發(fā)HarmonyOS APP應(yīng)用
` 本帖最后由 軟通動(dòng)力HOS 于 2021-3-10 15:29 編輯
研究HarmonyOS有一段時(shí)間了,今天主要結(jié)合自己多年的項(xiàng)目開發(fā)經(jīng)驗(yàn)和各種技術(shù)棧結(jié)合HarmonyOS APP
發(fā)表于 03-10 15:13
一文帶你讀懂OpenHarmony數(shù)字管家
、如何貢獻(xiàn)到數(shù)字管家體驗(yàn)完數(shù)字管家,你是否也想為數(shù)字管家添磚加瓦呢?
發(fā)表于 11-05 16:11
【HarmonyOS微課堂】JS FA開發(fā)基礎(chǔ)
【HarmonyOS微課堂】HarmonyOS Connect應(yīng)用開發(fā)基礎(chǔ)課主要是向大家講解如何利用HarmonyOS提供的開發(fā)套件
發(fā)表于 11-15 14:37
基于OpenHarmony和數(shù)字管家設(shè)計(jì)的全屋智能門鎖(開發(fā)流程+實(shí)操)
。開發(fā)流程項(xiàng)目主要開發(fā)流程如下圖,主要包含設(shè)備端、數(shù)字管家搭建開發(fā)環(huán)境、下載源碼、修改編譯、下載
發(fā)表于 03-24 09:31
一文帶你讀懂數(shù)字管家
,共同組建不同的場景,打破硬件設(shè)備之間的壁壘,成為你工作生活的好幫手;開源的運(yùn)作模式讓所有志同道合的開發(fā)者參與進(jìn)來,共同開發(fā)各種智能設(shè)備,完善各種場景,讓
發(fā)表于 03-31 16:58
鴻蒙智聯(lián)生態(tài)產(chǎn)品《接入智慧生活App開發(fā)指導(dǎo)》(官方更新版)
至HarmonyOS Connect云。
② 消費(fèi)者通過智慧生活App調(diào)用云端的H5開發(fā)包,從而實(shí)現(xiàn)對(duì)設(shè)備的管理和控制。
圖2 H5開發(fā)
發(fā)表于 04-26 15:00
HarmonyOS APP打包運(yùn)行和調(diào)試應(yīng)用開發(fā)步驟
。其中,HAP可以直接運(yùn)行在真機(jī)設(shè)備或者模擬器中;APP則是用于應(yīng)用上架到華為應(yīng)用市場。為了確保HarmonyOS應(yīng)用的完整性,HarmonyOS通過
發(fā)表于 05-24 14:27
基于OpenHarmony 的數(shù)字管家應(yīng)用開發(fā)樣例
開關(guān)機(jī)等;新智能設(shè)備接入參考 數(shù)字管家設(shè)備接入指南,根據(jù)文檔編寫頁面、處理相關(guān)邏輯和對(duì)接服務(wù)端接
發(fā)表于 09-14 14:07
在HarmonyOS版本下如何基于JS UI框架來開發(fā)?
的HarmonyOS應(yīng)用開發(fā)模型 HarmonyOS的用戶應(yīng)用程序包APP由一個(gè)或多個(gè)Hap包組成。每個(gè)Hap可以包含一個(gè)或多個(gè)Ability。Ability分為兩種類型:Featur
HarmonyOS開發(fā)實(shí)例:【數(shù)字管家app】
數(shù)字管家場景需要手機(jī)端、設(shè)備端和服務(wù)端三方協(xié)同完成,本文檔介紹的demo是數(shù)字管家大場景中的手機(jī)端應(yīng)用;用戶注冊登錄后可創(chuàng)建我的家庭并管理家
HarmonyOS開發(fā):【數(shù)字管家app設(shè)備接入FA】
評(píng)論