1+x安卓應(yīng)用開發(fā)(中級(jí))課程-項(xiàng)目4 傳感器應(yīng)用開放_(tái)第1頁(yè)
1+x安卓應(yīng)用開發(fā)(中級(jí))課程-項(xiàng)目4 傳感器應(yīng)用開放_(tái)第2頁(yè)
1+x安卓應(yīng)用開發(fā)(中級(jí))課程-項(xiàng)目4 傳感器應(yīng)用開放_(tái)第3頁(yè)
1+x安卓應(yīng)用開發(fā)(中級(jí))課程-項(xiàng)目4 傳感器應(yīng)用開放_(tái)第4頁(yè)
1+x安卓應(yīng)用開發(fā)(中級(jí))課程-項(xiàng)目4 傳感器應(yīng)用開放_(tái)第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

《騰訊1+x安卓應(yīng)用開發(fā)(中級(jí))》教案

一、教案設(shè)計(jì)課題項(xiàng)目4任務(wù)1認(rèn)識(shí)安卓傳感器課型理論課理論課時(shí)2課時(shí)實(shí)踐課時(shí)2課時(shí)教學(xué)目標(biāo)知識(shí)目標(biāo)能力(技能)目標(biāo)理解Android平臺(tái)支持三大類傳感器及其特點(diǎn)。能夠獲取Android設(shè)備支持的傳感器。教學(xué)重點(diǎn)掌握獲取Android設(shè)備支持的傳感器的方法。教學(xué)難點(diǎn)理解不同傳感器的應(yīng)用場(chǎng)合。教學(xué)內(nèi)容Android平臺(tái)支持三大類傳感器:位移傳感器、環(huán)境傳感器和位置傳感器。位移傳感器包括加速度傳感器,重力傳感器,陀螺儀和旋轉(zhuǎn)適量傳感器。這些傳感器沿三條軸線測(cè)量加速度和旋轉(zhuǎn)力度。環(huán)境傳感器包括氣壓,光線和溫度傳感器。用來(lái)測(cè)量各種環(huán)境參數(shù)。位置傳感器包含方向和磁力傳感器,用來(lái)測(cè)量設(shè)備的物理位置。Android系統(tǒng)負(fù)責(zé)將這些傳感器所輸出的信息傳遞給開發(fā)者,開發(fā)者可以利用這些信息開發(fā)很多應(yīng)用。例如,市場(chǎng)上的賽車游戲使用的就是重力傳感器、微信的搖一搖使用的是加速度傳感器。Android系統(tǒng)提供了一個(gè)類android.hardware.Sensor代表傳感器,該類將不同的傳感器封裝成了常量,具體見表7-1。表7-1傳感器常量傳感器類型常量?jī)?nèi)部

整數(shù)值中文名稱Sensor.TYPE_ACCELEROMETER1加速度傳感器Sensor.TYPE_MAGNETIC_FIELD2磁力傳感器Sensor.TYPE_ORIENTATION3方向傳感器

(廢棄,但依然可用)Sensor.TYPE_GYROSCOPE4陀螺儀傳感器Sensor.TYPE_LIGHT5環(huán)境光照傳感器Sensor.TYPE_PRESSURE6壓力傳感器Sensor.TYPE_TEMPERATURE7溫度傳感器

(廢棄,但依然可用)Sensor.TYPE_PROXIMITY8距離傳感器Sensor.TYPE_GRAVITY9重力傳感器Sensor.TYPE_LINEAR_ACCELERATION10線性加速度Sensor.TYPE_ROTATION_VECTOR11旋轉(zhuǎn)矢量Sensor.TYPE_RELATIVE_HUMIDITY12濕度傳感器Sensor.TYPE_AMBIENT_TEMPERATURE13溫度傳感器(4.0之后替代TYPE_TEMPERATURE)教學(xué)準(zhǔn)備教材,PPT、教綱、教案參考資料/guide/topics/sensors?hl=zh_cn教學(xué)過程方法與手段教學(xué)備注【課堂導(dǎo)入】傳感器在Android應(yīng)用中起到什么作用呢?傳感器(Sensor)系統(tǒng)可以讓智能手機(jī)的功能更加豐富多彩,在Android系統(tǒng)中支持多種傳感器。本任務(wù)我們將解決如何獲取移動(dòng)設(shè)備上的傳感器及其數(shù)值的問題?!窘虒W(xué)實(shí)施】7.1.1任務(wù)描述能夠獲取Android設(shè)備支持的傳感器,并檢測(cè)傳感器數(shù)值的變化。7.1.2問題引導(dǎo)傳感器在Android應(yīng)用中起到什么作用呢?傳感器(Sensor)系統(tǒng)可以讓智能手機(jī)的功能更加豐富多彩,在Android系統(tǒng)中支持多種傳感器。本任務(wù)我們將解決如何獲取移動(dòng)設(shè)備上的傳感器及其數(shù)值的問題。7.1.3知識(shí)準(zhǔn)備Android平臺(tái)支持三大類傳感器介紹獲取傳感器管理器SensorManager獲取某一類型的傳感器設(shè)置傳感器監(jiān)聽器注冊(cè)傳感器注銷傳感器7.1.4完成傳感器及其數(shù)值的獲取7.1.5知識(shí)拓展不同組織對(duì)“傳感器”的定義【知識(shí)(技能)鞏固練習(xí)】獲取手機(jī)能使用的所有傳感器,并顯示其名稱?!窘虒W(xué)小結(jié)】講授、演示課后作業(yè)與訓(xùn)練完成項(xiàng)目4課后練習(xí)對(duì)應(yīng)的習(xí)題。教學(xué)反思

課題項(xiàng)目4任務(wù)2方向傳感器的使用課型理論課理論課時(shí)2課時(shí)實(shí)踐課時(shí)2課時(shí)教學(xué)目標(biāo)知識(shí)目標(biāo)能力(技能)目標(biāo)能夠熟悉安卓系統(tǒng)下常用方向類傳感器。能夠創(chuàng)建方向感知應(yīng)用,并能正確運(yùn)行。教學(xué)重點(diǎn)正確獲取方向傳感器數(shù)值教學(xué)難點(diǎn)對(duì)方向傳感器數(shù)值的靈活運(yùn)用。教學(xué)內(nèi)容1.方向傳感器介紹方向傳感器的類型常量是Sensor.TYPE_ORIENTATION。當(dāng)方向傳感器的數(shù)值發(fā)生變化時(shí)會(huì)回調(diào)onSensorChanged(SensorEventevent)方法,這個(gè)方法的參數(shù)event包含3個(gè)值,分別是event.values[0]、event.values[1]和event.values[2],它們的含義見表7-2。表7-2方向傳感器SensorEvent3個(gè)值的含義event.values[0]對(duì)應(yīng)磁北方向和y軸之間的角度,圍繞z軸(0°到359°)。0°=北,90°=東,180°=南,270°=西event.values[1]對(duì)應(yīng)x軸和水平面的夾角。圍繞x軸旋轉(zhuǎn)(-180°到180°),當(dāng)z軸向y軸移動(dòng)時(shí)角度為正值。event.values[2]對(duì)應(yīng)y軸和水平面的夾角。隨著設(shè)備順時(shí)針移動(dòng),圍繞y軸(-90至90)旋轉(zhuǎn)。2.使用方向傳感器設(shè)計(jì)一個(gè)指南針(1)創(chuàng)建一個(gè)類CompassView,創(chuàng)建一個(gè)Activity,將其命名為CompassActivity。(2)在CompassView類中,定義setSensorManager()方法,用來(lái)注冊(cè)方向傳感器。(3)在CompassView類中,定義OnCustomSensorListener接口,在接口中,定義onSensorChanged()方法用來(lái)感知方向傳感器值的變化,定義onCompass()用來(lái)記錄指南針的方位和角度。(4)CompassView類實(shí)現(xiàn)接口SensorEventListener,并重寫其方法onSensorChanged()和onAccuracyChanged()。在onSensorChanged()中,通過傳感器傳遞的3個(gè)值——event.values[0]、event.values[1]和event.values[2],分別計(jì)算方位角、傾斜角和滾動(dòng)角。然后調(diào)用updateDirection()方法計(jì)算方位。(5)修改CompassView類的4參構(gòu)造方法,開啟工作線程,每100毫秒重新繪制一次,以便在指南針表盤上及時(shí)顯示新的角度和方位。(6)在CompassView類中,創(chuàng)建接口類型變量,并定義setCustomSensorListener()方法用來(lái)傳遞一個(gè)接口對(duì)象實(shí)例,以便暴露設(shè)置接口的方法。(7)在CompassView類中,定義invalidView()方法用來(lái)注銷傳感器。(8)在CompassActivity中,獲取傳感器管理器,并調(diào)用cView的setSensorManager()注冊(cè)傳感器的監(jiān)聽事件。需要注意的是,這些代碼要放在setContentView(cView)之前。(9)在CompassActivity中,cView的setCustomSensorListener()方法,使用匿名內(nèi)部類實(shí)現(xiàn)接口的兩個(gè)方法。(10)在CompassActivity中,重寫onDestroy()方法,調(diào)用步驟8定義好的invalidView(),以便Activity銷毀時(shí)注銷傳感器。教學(xué)準(zhǔn)備教材,PPT、教綱、教案參考資料/guide/topics/sensors?hl=zh_cn教學(xué)過程方法與手段教學(xué)備注【課堂導(dǎo)入】Android系統(tǒng)中的方向傳感器在生活中典型的應(yīng)用是指南針,指南針是如何實(shí)現(xiàn)方位指向的呢?利用方向傳感器為我們返回的三個(gè)值,可以計(jì)算出方位和角度?!窘虒W(xué)實(shí)施】7.2.1任務(wù)描述使用方向傳感器設(shè)計(jì)一個(gè)指南針。在指南針表盤上顯示方位和角度。效果如圖所示。7.2.2問題引導(dǎo)Android系統(tǒng)中的方向傳感器在生活中典型的應(yīng)用是指南針,指南針是如何實(shí)現(xiàn)方位指向的呢?利用方向傳感器為我們返回的三個(gè)值,可以計(jì)算出方位和角度。7.2.3知識(shí)準(zhǔn)備方向傳感器介紹使用方向傳感器設(shè)計(jì)一個(gè)指南針的步驟7.2.4實(shí)現(xiàn)指南針的設(shè)計(jì)。7.2.5知識(shí)拓展在Android平臺(tái)中,傳感器框的三維坐標(biāo)系【知識(shí)(技能)鞏固練習(xí)】獲取方向傳感器三個(gè)方向的值?!窘虒W(xué)小結(jié)】講授、演示課后作業(yè)與訓(xùn)練完成項(xiàng)目4課后練習(xí)對(duì)應(yīng)的習(xí)題。教學(xué)反思

課題項(xiàng)目4任務(wù)3加速度傳感器的使用課型理論課理論課時(shí)2課時(shí)實(shí)踐課時(shí)2課時(shí)教學(xué)目標(biāo)知識(shí)目標(biāo)能力(技能)目標(biāo)能夠熟悉安卓系統(tǒng)下常用加速度類傳感器。能夠響應(yīng)設(shè)備移動(dòng),創(chuàng)建相關(guān)應(yīng)用,并能正確運(yùn)行。教學(xué)重點(diǎn)正確獲取加速度傳感器數(shù)值教學(xué)難點(diǎn)對(duì)加速度傳感器數(shù)值的靈活運(yùn)用。教學(xué)內(nèi)容1.加速度傳感器簡(jiǎn)介加速度傳感器的類型常量是Sensor.TYPE_ACCELEROMETER。當(dāng)加速度傳感器的數(shù)值發(fā)生變化時(shí)會(huì)回調(diào)onSensorChanged(SensorEventevent)方法,這個(gè)方法的參數(shù)event包含3個(gè)值,分別是event.values[0]、event.values[1]和event.values[2],它們的含義見表7-3。表7-3加速度傳感器SensorEvent3個(gè)值的含義event.values[0]左右移動(dòng)的加速度event.values[1]前后移動(dòng)的加速度event.values[2]上下移動(dòng)的加速度2.加速度傳感器計(jì)步原理利用三軸加速度傳感器能檢測(cè)人步行中三個(gè)方向的加速度變化。用戶在水平步行運(yùn)動(dòng)中,在收腳的動(dòng)作中,由于重心向上單腳觸地,垂直方向加速度呈正向增加的趨勢(shì),之后繼續(xù)向前,重心下移兩腳觸底,加速度相反。水平加速度在收腳時(shí)減小,在邁步時(shí)增加。垂直和前進(jìn)兩個(gè)方向的加速度呈現(xiàn)周期性變化,三個(gè)加速度的矢量長(zhǎng)度與時(shí)間形成的軌跡大致為一個(gè)正弦曲線,而且在某點(diǎn)有一個(gè)峰值。一個(gè)正弦波形代表一步。首先記錄上次矢量長(zhǎng)度和運(yùn)動(dòng)方向,通過矢量長(zhǎng)度的變化,可以判斷當(dāng)前加速度的方向,并和上一次保存的加速度方向進(jìn)行比較。如果是相反的,即是剛過峰值狀態(tài),則進(jìn)入計(jì)步邏輯進(jìn)行計(jì)步,否則就舍棄。通過對(duì)軌跡的峰值進(jìn)行檢測(cè)累加和加速度閥值決策,即可計(jì)算用戶運(yùn)動(dòng)的步數(shù)。又因?yàn)?,人的反射神?jīng)決定了人運(yùn)動(dòng)的極限,兩步之間不可能小于200毫秒,因此將時(shí)間閾值設(shè)為200毫秒,如果兩次計(jì)步之間的時(shí)間間隔小于200毫秒,則不計(jì)步。3.使用加速度傳感器設(shè)計(jì)一個(gè)計(jì)步器(1)創(chuàng)建一個(gè)EmptyActivity,將其命名為CountStepActivity。(2)設(shè)置CountStepActivity的布局文件。采用線性布局,放置兩個(gè)TextView和一個(gè)Button。(3)在CountStepActivity的onCreate()方法中,獲取傳感器管理器,獲取加速度傳感器,并注冊(cè)傳感器的監(jiān)聽事件。(4)CountStepActivity類實(shí)現(xiàn)接口SensorEventListener,并復(fù)寫其方法onSensorChanged()和onAccuracyChanged()。在onSensorChanged()中,通過傳感器傳遞的3個(gè)值——event.values[0]、event.values[1]和event.values[2],計(jì)算三個(gè)加速度的矢量長(zhǎng)度。并進(jìn)行峰值檢測(cè),配合加速度閾值和時(shí)間閾值,對(duì)步數(shù)進(jìn)行累加和顯示。(5)設(shè)置按鈕的點(diǎn)擊事件監(jiān)聽器,并讓CountStepActivity實(shí)現(xiàn)View.OnClickListener接口,在其實(shí)現(xiàn)方法onClick()中對(duì)按鈕和文本框做一些初始設(shè)置。(6)當(dāng)CountStepActivity被銷毀時(shí),會(huì)回調(diào)onDestroy()方法,在該方法中注銷傳感器。教學(xué)準(zhǔn)備教材,PPT、教綱、教案參考資料/guide/topics/sensors?hl=zh_cn教學(xué)過程方法與手段教學(xué)備注【課堂導(dǎo)入】加速度傳感器是如何感知步數(shù)變化的呢?加速度傳感器有x,y,z三個(gè)軸。通過傳感器返回的三個(gè)值能檢測(cè)人步行中三個(gè)方向的加速度變化。【教學(xué)實(shí)施】7.3.1任務(wù)描述使用加速度傳感器設(shè)計(jì)一個(gè)計(jì)步器。當(dāng)點(diǎn)擊“START”按鈕后時(shí)能實(shí)時(shí)更新步數(shù),并且按鈕文字變?yōu)椤癝TOP”,當(dāng)點(diǎn)擊“STOP

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論