【HarmonyOS】應(yīng)用開發(fā)第九章-傳感器和媒體_第1頁
【HarmonyOS】應(yīng)用開發(fā)第九章-傳感器和媒體_第2頁
【HarmonyOS】應(yīng)用開發(fā)第九章-傳感器和媒體_第3頁
【HarmonyOS】應(yīng)用開發(fā)第九章-傳感器和媒體_第4頁
【HarmonyOS】應(yīng)用開發(fā)第九章-傳感器和媒體_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第八章HarmonyOS分布式應(yīng)用開發(fā)武漢大學(xué)計(jì)算機(jī)學(xué)院趙小剛普通傳感器分類工作原理普通傳感器調(diào)用相機(jī)調(diào)用GPS調(diào)用傳感器概述HarmonyOS傳感器是應(yīng)用訪問底層硬件傳感器的一種設(shè)備抽象概念。開發(fā)者根據(jù)傳感器提供的SensorAPI,可以查詢?cè)O(shè)備上的傳感器,訂閱傳感器的數(shù)據(jù),并根據(jù)傳感器數(shù)據(jù)定制相應(yīng)的算法,開發(fā)各類應(yīng)用,比如指南針、運(yùn)動(dòng)健康、游戲等。根據(jù)傳感器的用途,可以將傳感器分為六大類:運(yùn)動(dòng)類傳感器、環(huán)境類傳感器、方向類傳感器、光線類傳感器、健康類傳感器、其他類傳感器(如霍爾傳感器),每一大類傳感器包含不同類型的傳感器,某種類型的傳感器可能是單一的物理傳感器,也可能是由多個(gè)物理傳感器復(fù)合而成。運(yùn)動(dòng)類傳感器加速度傳感器:主要用來檢測(cè)手機(jī)運(yùn)動(dòng)狀態(tài),測(cè)量三個(gè)物理軸(x、y和z)上,施加在設(shè)備上的加速度(包括重力加速度),單位:m/s2。重力傳感器:主要用來測(cè)量重力大小,測(cè)量三個(gè)物理軸(x、y和z)上,施加在設(shè)備上的重力加速度,單位:m/s2。陀螺儀傳感器:主要用來測(cè)量手機(jī)旋轉(zhuǎn)的角速度,測(cè)量三個(gè)物理軸(x、y和z)上,設(shè)備的旋轉(zhuǎn)角速度,單位:rad/s。計(jì)步傳感器:用于提供用戶行走的步數(shù)數(shù)據(jù),可以統(tǒng)計(jì)用戶行走步數(shù)。運(yùn)動(dòng)類傳感器工作原理主流傳感器表示SENSOR_TYPE_ACCELEROMETER:加速度傳感器SENSOR_TYPE_GRAVITY:重力傳感器SENSOR_TYPE_GYROSCOPE:陀螺儀傳感器SENSOR_TYPE_PEDOMETER:計(jì)步器傳感器SENSOR_TYPE_AMBIENT_TEMPERATURE:環(huán)境溫度傳感器SENSOR_TYPE_MAGNETIC_FIELD:磁場(chǎng)傳感器普通傳感器分類工作原理普通傳感器調(diào)用相機(jī)調(diào)用GPS調(diào)用運(yùn)作機(jī)制HarmonyOSOpenHarmony傳感器包含如下四個(gè)模塊:SensorAPI、SensorFramework、SensorService、HD_IDL層。SensorAPI:提供傳感器的基礎(chǔ)API,主要包含查詢傳感器的列表、訂閱/取消傳感器的數(shù)據(jù)、執(zhí)行控制命令等,簡(jiǎn)化應(yīng)用開發(fā)。SensorFramework:主要實(shí)現(xiàn)傳感器的訂閱管理,數(shù)據(jù)通道的創(chuàng)建、銷毀、訂閱與取消訂閱,實(shí)現(xiàn)與SensorService的通信。SensorService:主要實(shí)現(xiàn)HD_IDL層數(shù)據(jù)接收、解析、分發(fā),前后臺(tái)的策略管控,對(duì)該設(shè)備Sensor的管理;Sensor權(quán)限管控等。HD_IDL層:對(duì)不同的FIFO、頻率進(jìn)行策略選擇;以及對(duì)不同設(shè)備的適配。核心模塊接口說明HarmonyOS傳感器提供的功能有:查詢傳感器的列表、訂閱/取消訂閱傳感器數(shù)據(jù)、查詢傳感器的最小采樣時(shí)間間隔、執(zhí)行控制命令。以訂閱方向類別的傳感器數(shù)據(jù)為例:sensor.subscribeCompass(OBJECT):訂閱羅盤數(shù)據(jù)變化。針對(duì)同一個(gè)應(yīng)用,多次點(diǎn)擊調(diào)用時(shí),會(huì)覆蓋前面的調(diào)用效果,即僅最后一次調(diào)用生效。開發(fā)步驟權(quán)限配置:如果設(shè)備上使用了傳感器權(quán)限列表中的傳感器,需要請(qǐng)求相應(yīng)的權(quán)限,開發(fā)者才能獲取到傳感器數(shù)據(jù)。權(quán)限配置開發(fā)者需要在config.json里面配置權(quán)限:"reqPermissions":[{"name":"ohos.permission.GYROSCOPE","reason":"","usedScene":{"ability":[".MainAbility"],"when":"inuse"}}]普通傳感器分類工作原理普通傳感器調(diào)用相機(jī)調(diào)用GPS調(diào)用使用傳感器以使用方向類別的傳感器為例,運(yùn)動(dòng)類、環(huán)境類、健康類等類別的傳感器使用方法類似。步驟如下:獲取待訂閱數(shù)據(jù)的傳感器。創(chuàng)建傳感器回調(diào)。訂閱傳感器數(shù)據(jù)。接收并處理傳感器數(shù)據(jù)。取消訂閱傳感器數(shù)據(jù)。方向傳感器調(diào)用示例1.引入方向類傳感器對(duì)象importsensorfrom'@system.sensor';2.羅經(jīng)數(shù)據(jù)訂閱3.羅經(jīng)數(shù)據(jù)取消onInit(){sensor.subscribeCompass({success:function(ret){console.log('getdatadirection:'+ret.direction);},fail:function(data,code){console.error('subscribecompassfail,code:'+code+',data:'+data);},});},onDestroy(){sensor.unsubscribeCompass();console.log('canceldatadirectioncollection');}普通傳感器分類工作原理普通傳感器調(diào)用相機(jī)調(diào)用GPS調(diào)用相機(jī)調(diào)用相機(jī):HarmonyOS相機(jī)模塊支持相機(jī)業(yè)務(wù)的開發(fā),開發(fā)者可以通過已開放的接口實(shí)現(xiàn)相機(jī)硬件的訪問、操作和新功能開發(fā),最常見的操作如:預(yù)覽、拍照、連拍和錄像等?;靖拍钕鄼C(jī)靜態(tài)能力:用于描述相機(jī)的固有能力的一系列參數(shù),比如朝向、支持的分辨率等信息。物理相機(jī):物理相機(jī)就是獨(dú)立的實(shí)體攝像頭設(shè)備。物理相機(jī)ID是用于標(biāo)志每個(gè)物理攝像頭的唯一字串。邏輯相機(jī):邏輯相機(jī)是多個(gè)物理相機(jī)組合出來的抽象設(shè)備,邏輯相機(jī)通過同時(shí)控制多個(gè)物理相機(jī)設(shè)備來完成相機(jī)某些功能,如大光圈、變焦等功能。邏輯攝像機(jī)ID是一個(gè)唯一的字符串,標(biāo)識(shí)多個(gè)物理攝像機(jī)的抽象能力。幀捕獲:相機(jī)啟動(dòng)后對(duì)幀的捕獲動(dòng)作統(tǒng)稱為幀捕獲。主要包含單幀捕獲、多幀捕獲、循環(huán)幀捕獲。主要接口一個(gè)頁面僅支持一個(gè)camera組件,提供預(yù)覽、拍照功能。操作方法<divclass="container"><cameraflash="off"deviceposition="back"@error="cameraError"id="take"></camera><buttononclick="takephotos">拍照</button></div>takephotos(){varparams={};params.quality='high';params.success=null;params.fail=null;plete=null;this.$element('take').takePhoto(params)},camera{width:300px;height:300px;}普通傳感器分類工作原理普通傳感器調(diào)用相機(jī)調(diào)用GPS調(diào)用位置傳感器-位置能力移動(dòng)終端設(shè)備已經(jīng)深入人們?nèi)粘I畹姆椒矫婷妫绮榭此诔鞘械奶鞖?、新聞?shì)W事、出行打車、旅行導(dǎo)航、運(yùn)動(dòng)記錄。這些習(xí)以為常的活動(dòng),都離不開定位用戶終端設(shè)備的位置。當(dāng)用戶處于這些豐富的使用場(chǎng)景中時(shí),系統(tǒng)的位置能力可以提供實(shí)時(shí)準(zhǔn)確的位置數(shù)據(jù)。對(duì)于開發(fā)者,設(shè)計(jì)基于位置體驗(yàn)的服務(wù),也可以使應(yīng)用的使用體驗(yàn)更貼近每個(gè)用戶。當(dāng)應(yīng)用在實(shí)現(xiàn)基于設(shè)備位置的功能時(shí),如:駕車導(dǎo)航,記錄運(yùn)動(dòng)軌跡等,可以調(diào)用該模塊的API接口,完成位置信息的獲取?;靖拍钗恢媚芰τ糜诖_定用戶設(shè)備在哪里,系統(tǒng)使用位置坐標(biāo)標(biāo)示設(shè)備的位置,并用多種定位技術(shù)提供服務(wù),如GNSS定位、基站定位、WLAN/藍(lán)牙定位(基站定位、WLAN/藍(lán)牙定位后續(xù)統(tǒng)稱“網(wǎng)絡(luò)定位技術(shù)”)。通過這些定位技術(shù),無論用戶設(shè)備在室內(nèi)或是戶外,都可以準(zhǔn)確地確定設(shè)備位置。坐標(biāo):系統(tǒng)以1984年世界大地坐標(biāo)系統(tǒng)為參考,使用經(jīng)度、緯度數(shù)據(jù)描述地球上的一個(gè)位置。GNSS定位:基于全球?qū)Ш叫l(wèi)星系統(tǒng),包含:GPS、GLONASS、北斗、Galileo等,通過導(dǎo)航衛(wèi)星,設(shè)備芯片提供的定位算法,來確定設(shè)備準(zhǔn)確位置,定位精度高?;径ㄎ唬焊鶕?jù)設(shè)備當(dāng)前駐網(wǎng)基站和相鄰基站的位置,估算設(shè)備當(dāng)前位置。此定位方式的定位結(jié)果精度相對(duì)較低,并且需要設(shè)備可以訪問蜂窩網(wǎng)絡(luò)。WLAN、藍(lán)牙定位:根據(jù)設(shè)備可搜索到的周圍WLAN、藍(lán)牙設(shè)備位置,估算設(shè)備當(dāng)前位置。運(yùn)作機(jī)制位置能力作為系統(tǒng)為應(yīng)用提供的一種基礎(chǔ)服務(wù),需要應(yīng)用在所使用的業(yè)務(wù)場(chǎng)景,向系統(tǒng)主動(dòng)發(fā)起請(qǐng)求,并在業(yè)務(wù)場(chǎng)景結(jié)束時(shí),主動(dòng)結(jié)束此請(qǐng)求,在此過程中系統(tǒng)會(huì)將實(shí)時(shí)的定位結(jié)果上報(bào)給應(yīng)用。使用設(shè)備的位置能力,需要用戶進(jìn)行確認(rèn)并主動(dòng)開啟位置開關(guān)。如果位置開關(guān)沒有開啟,系統(tǒng)不會(huì)向任何應(yīng)用提供位置服務(wù)。設(shè)備位置信息屬于用戶敏感數(shù)據(jù),所以即使用戶已經(jīng)開啟位置開關(guān),應(yīng)用在獲取設(shè)備位置前仍需向用戶申請(qǐng)位置訪問權(quán)限。在用戶確認(rèn)允許后,系統(tǒng)才會(huì)向應(yīng)用提供位置服務(wù)。獲取設(shè)備的位置信息開發(fā)者可以調(diào)用HarmonyOS位置相關(guān)接口,獲取設(shè)備實(shí)時(shí)位置,或者最近的歷史位置。對(duì)于位置敏感的應(yīng)用業(yè)務(wù),建議獲取設(shè)備實(shí)時(shí)位置信息。如果不需要設(shè)備實(shí)時(shí)位置信息,并且希望盡可能的節(jié)省耗電,開發(fā)者可以考慮獲取最近的歷史位置。接口說明支持類型geolocation.getLocation(OBJECT)參數(shù)說明開發(fā)步驟1.應(yīng)用在使用系統(tǒng)能力前,需要檢查是否已經(jīng)獲取用戶授權(quán)訪問設(shè)備位置信息。如未獲得授權(quán),可以向用戶申請(qǐng)需要的位置權(quán)限。系統(tǒng)提供的定位權(quán)限有:ohos.permission.LOCATIONohos.permission.LOCATION_IN_BACKGROUND訪問設(shè)備的位置信息,必須申請(qǐng)ohos.permission.LOCATION權(quán)限,并且獲得用戶授權(quán)。如果應(yīng)用在后臺(tái)運(yùn)行時(shí)也需要訪問設(shè)備位置,除需要將應(yīng)用聲明為允許后臺(tái)運(yùn)行外,還必須申請(qǐng)ohos.permission.LOCATION_IN_BACKGROUND權(quán)限,這樣應(yīng)用在切入后臺(tái)之后,系統(tǒng)可以繼續(xù)上報(bào)位置信息。開發(fā)者可以在應(yīng)用config.json文件中聲明所需要的權(quán)限,示例代碼如下:config.json{"reqPermissions":[{"name":"ohos.permission.LOCATION","reason":"$string:reason_description","usedScene":{"ability":["com.myapplication.LocationAbility"],"when":"inuse"},{...}]}開發(fā)步驟2.為了使用位置傳感器,需要引入頭文件system.geolocation',獲取位置管理對(duì)象geolocation'。importgeolocationfrom'@system.geolocation';在頁面初始化回調(diào)函數(shù)或自定義函數(shù)中調(diào)用該對(duì)象的方法getLocation來獲取位置信息onInit(){geolocation.getLocation({success:fu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論