999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Android智能手機的方向傳感器應用開發

2018-01-29 12:56:46陳三清張靖
無線互聯科技 2017年18期

陳三清+張靖

摘要:傳感器的應用是智能手機的一大亮點,方向傳感器在Android手機上有著重要的應用。文章首先介紹了Android傳感器系統架構和方向傳感器的特點,然后論述了Android方向傳感器應用開發的要素,如傳感器應用開發主要的類和接口及方向傳感器定位的基本原理,重點講述了簡易指南針程序的開發步驟及要點,最后給出了程序測試的結果。

關鍵詞:Android;方向傳感器;指南針

隨著智能手機的廣泛使用,基于智能手機的應用也層出不窮,許多基于手機硬件或傳感器芯片的手機APP受到了人們的熱愛和追捧。比如基于GPS芯片的定位與地圖服務幾乎就是智能手機的標準功能,基于光線傳感器的智能手機是隨環境光線強弱自動改變屏幕亮度的,而基于陀螺儀傳感器的無人機飛控APP,基于加速傳感器的人體計步器APP,基于方向傳感器的手機游戲應用等是當前Andrmd應用開發的熱門方向。本文專門針對Android方向傳感器特點進行分析,在此基礎上開發應用程序。

1Android傳感器基礎

1.1Android傳感器系統架構

現在的智能手機不僅是信息的載體,也是許多傳感器設備的載體,像重力傳感器、磁場傳感器、光線傳感器、陀螺儀傳感器等傳感設備極大地增強了智能手機的用戶體驗[1]。一般傳感器系統會主動對上層報告傳感器精度和數

據的變化,并且提供了設置傳感器精度的接口,這些接口可以在Java應用和Java框架中使用。Android平臺下傳感器系統的基本層次結構[2]如圖1所示。

Android傳感器系統架構從上到下依次是Java應用層、Java對傳感器的應用開發框架層、傳感器硬件抽象層及傳感器硬件層,其中Sensor的Java類屬于應用開發框架層,此部分對應的實現文件是Sensor*Java;傳感器系統的JNI部分提供了對類Android.hardware.Sensor.Manage的本地支持,在Andrmd平臺下基于傳感器的應用程序開發一般要使用應用開發層的相關的類和接口。

1.2Android方向傳感器的特點

方向傳感器(Sensor.TYPE_ORIENTATION)又稱姿態傳感器,方向傳感器通過對力每I感的傳感器,感受手機等設備在變換姿勢時重心變化,使手機等設備光標變化位置,從而實現選擇的功能。方向傳感器是Android平臺提供的用于判別設備位置的傳感器之一,事實上,磁場傳感器屬于硬件傳感器,方向傳感器屬于軟件傳感器,其數據是通過加速度傳感器和磁場傳感器共同獲得的,通過方向傳感器獲取的數據可以方便快捷地進行數據應用和展示。

2Android方向傳感器應用開發的要素

2.1ASF簡介

所謂ASF就是AndroidSDK提供的Androidsensorframework(Android傳感器框架),其作用是用來訪問當前Android設備內置的傳感器,幫助完成各種與傳感器有關的任務。例如:確定當前Android手機支持什么類型的傳感器,支持的傳感器硬件信息以及測量范圍、精度等方面的信息;獲取傳感器傳回來的數據以及定義傳感器回傳的數據的精度;注冊和注銷傳感器事件監聽器,這些監聽器用于監聽傳感器的變化,通常從傳感器回傳的數據需要利用這些監聽器完成。

2.2ASF的主要類和接口

Andrcnd傳感器應用開發一般要用到下面的類和接口[3]。

2.2.1SensorManager類

SensorManager類是系統中所有傳感器的管理類,通過該類實例獲得對傳感器的管理服務,包括訪問和列表所有傳感器,注冊和注銷傳感器服務等。

2.2.2Sensor類

Sensor類定義了傳感器服務的類型,如Sensor.TYPE_GRAVITY定義的是重力傳感器,Sensor.TYPE_TEMPERATURE定義的是溫度傳感器,而Sensor.TYPE_

ORIENTATION定義的是方向傳感器,在編程時由此可判斷是何種類型的傳感器傳送的數據。

2.2.3SensorEvent類

SensorEvent類是對傳感器事件的描述,提供傳感器事件相關的信息,比如傳感器類型、傳感器數據、數據精度等等信息。

2.2.4SensoriEventListener接口

SensorEventListener接口用于傳感器數據對編程開發者的回調,使用該接口的回調方法獲得傳感器的數據和狀

2.3方向傳感器定位的基本原理

方向傳感器屬于位置類傳感器,通過該類傳感器可以感應手機的地理坐標,并且反饋給用戶。方向傳感器主要通過感應手機方位的變化來捕獲3個方位的參數,即手機沿X軸、Y軸和Z軸轉過的角度(見圖2)[4-6]。

然后可以通過Sensor類的size()和getName()方法獲得所支持傳感器總的個數及傳感器設備名稱,或使用getVendor()獲得傳感器供應商信息,使用getVersion()取得設備版本信息等。

3.2傳感器服務的注冊

一般地,傳感器服務要隨著程序狀態的變化而變化。在本例中,利用Activity實現程序界面時,在重寫onResume()方法時,可在其中啟用傳感器服務:

@Override

protected void onResume0 {

super.onResume0;

List sensorsList = sManager.

getSensorList(Sensor.TYPE_ ORIENTATION);

if (sensorsList.size0 > 0) {

sManager.registerListener(this, sensorsList.get(0),

SensorManager. SENSOR DELAY_GAME);//注冊方向傳感器,并設置傳感器采樣方式SENSOR DELAY_GAME}

為了降低功耗,在退出應用或鎖屏等操作時,應關閉傳感器服務,此時可在Activity處在暫停或停止狀態時注銷服

務,如下在onPause0方法中注銷傳感器服務:

@Override

protected void onPause(){

super.onPause();

sManager.unregisterListener(this);

}

3.3 SensorEventListener接口的實現及指向方位旋轉的實現

要使用傳感器的數據及狀態信息,就必須要實現SensorEventListener接口,通過其回調方法的參數獲得,有兩個方法:

public void onAccuracyChanged(Sensor sensor. int

accuracy);

public void onSensorChanged(SensorEvent event);

其中,第一個方法是傳感器設備的精度產生變化時回調:第2個方法是傳感器設備的數據產生生變化時回調。在設計本例程序時只需第2個方法,通過SensorEvent類的參數event獲得傳感器狀態信息和數據信息。通過event.values[0]獲得沿Z軸旋轉角度,再使對指南針圖片獲得相應的旋轉角度,以下是實現的關鍵代碼[1]:

@Override

public void onSensorChanged(SensorEvent event){

int sensorType=event.sensor.getType();//獲取觸發

event的傳感器類型

switch(sensorType){

case Sensor.TYPE ORIENTATION:

tvl.setText(“手機沿Z軸轉過的角度為:”+event.

values[0]);

tv2.setText(

values[l]);

tv3.setText(

values[2]);

“手機沿Y軸轉過的角度為:”+event.

“手機沿X軸轉過的角度為:”+event.

float degree=event.values[0];∥獲取z軸轉過的角度

RotateAnimation ra=new RotateAnimation

(currentDegree:degree,

Anirnation.RELATIVE__TO_SELF,0.5f,Animation.

RELATIVE TO_SELF,0.5f);

//穿件旋轉動畫

ra.setDuration(300);//動畫持續時間

image.startAnimation(ra);

currentDegree=-degree;

break;)

}

4運行結果及分析

程序測試運行結果,手機水平放置時約“正北”和“正南”時的情況如圖3—4所示,由于指南針所需確定方位的數據只需event.values[0],所以只需關注“手機沿Z軸轉過的角度”;再者設置傳感器采樣速率較快,顯示數據是十分靈敏的,因而截圖顯示的數值在“標準”數值附近,不是嚴格準確的;event.values[0]的范圍是0?360,故顯示350?359之間的數值時,也大約處在“正北”的位置,其他情況類似判斷。

[參考文獻]

[1]尹邦杰,黃曉瑩.淺析Android手機傳感器機制及應用設計舉例[J].計算機光盤軟件與應用,2013(5):148.

[2]孫廣宇,張玲玲.Android物聯網開發從入門到實戰[M].北京:清華大學出版社,2016.

[3]REDOWU.如何獲取Android設備所支持的傳感器種類[EB/OL].(2016-09-12)[2017-09-25]_http://blog.csdn.net/redoq/article/details/52515123.

[4]張舒.基于Android平臺的無線傳感器應用層開發[D].北京:北京郵電大學,2012.

[5]田志貢,阮國慶,石峰.手機游戲開發中Android傳感器的應用研究[J].無線互聯科技,2015(7):123-124.

[6]蔡澤江,唐國純.基于Android傳感器技術的游戲開發應用[J].軟件,2014(9):38-42.endprint

主站蜘蛛池模板: 无码人妻免费| 日本成人福利视频| 亚洲午夜片| 熟妇丰满人妻| 40岁成熟女人牲交片免费| 精品久久香蕉国产线看观看gif| 色爽网免费视频| 91国内视频在线观看| 一区二区理伦视频| 欧美成人日韩| 国内精品伊人久久久久7777人| 亚洲日韩精品欧美中文字幕| 91久久大香线蕉| 97免费在线观看视频| 国产国模一区二区三区四区| v天堂中文在线| 四虎成人精品在永久免费| 色成人亚洲| 91麻豆国产视频| 人妻少妇乱子伦精品无码专区毛片| 国产视频只有无码精品| 日韩精品无码免费一区二区三区| 日韩高清成人| 国产91全国探花系列在线播放| 中文字幕亚洲综久久2021| 大学生久久香蕉国产线观看| 呦女亚洲一区精品| 亚洲精品无码专区在线观看 | 亚洲欧美另类久久久精品播放的| 亚洲AⅤ波多系列中文字幕| 九九热在线视频| 无码福利视频| 免费xxxxx在线观看网站| 日本亚洲最大的色成网站www| 超碰色了色| 丰满人妻久久中文字幕| www.国产福利| 亚洲一本大道在线| 成·人免费午夜无码视频在线观看| 国产精品性| 亚洲欧洲日韩久久狠狠爱| 久久精品波多野结衣| 综合社区亚洲熟妇p| jizz亚洲高清在线观看| 污网站免费在线观看| 国产极品美女在线播放| 欧美a在线看| 怡红院美国分院一区二区| 91毛片网| 思思热在线视频精品| 91麻豆国产精品91久久久| h网站在线播放| 又黄又湿又爽的视频| 就去色综合| 67194在线午夜亚洲 | 精品无码日韩国产不卡av| 国产黄在线免费观看| 日本国产精品| 乱人伦中文视频在线观看免费| 亚洲精品无码av中文字幕| 午夜视频在线观看区二区| 91在线精品免费免费播放| 精品欧美视频| 亚洲大学生视频在线播放| 青青操国产| 国产网友愉拍精品视频| 美女无遮挡免费网站| 国产性猛交XXXX免费看| 国产女人综合久久精品视| 国产99在线| 亚洲国产精品日韩专区AV| 国产精品区视频中文字幕| 亚洲日韩精品伊甸| 日本在线免费网站| 国产日本欧美在线观看| 亚洲一区精品视频在线| 欧美日韩国产一级| 91精品视频在线播放| 乱人伦99久久| 亚洲午夜久久久精品电影院| 色哟哟精品无码网站在线播放视频| 午夜在线不卡|