《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 微波|射頻 > 設(shè)計應(yīng)用 > Android特色開發(fā)之傳感器和語音識別
Android特色開發(fā)之傳感器和語音識別
摘要: Android是一個面向應(yīng)用程序開發(fā)的豐富平臺,它擁有許多具有吸引力的用戶界面元素、數(shù)據(jù)管理和網(wǎng)絡(luò)應(yīng)用等優(yōu)秀的功能。Android還提供了很多頗具特色的接口。
Abstract:
Key words :

  Android特色開發(fā)

  Android 是一個面向應(yīng)用程序開發(fā)的豐富平臺,它擁有許多具有吸引力的用戶界面元素、數(shù)據(jù)管理和網(wǎng)絡(luò)應(yīng)用等優(yōu)秀的功能。Android 還提供了很多頗具特色的接口。本文我們將分別介紹這些吸引開發(fā)者眼球的特色開發(fā),主要包括:傳感器系統(tǒng)(Sensor)、語音識別技術(shù)(RecognizerIntent)、Google Map和用來開發(fā)桌面的插件(Widget)。通過本文的學(xué)習(xí),讀者將對Android有一個更深入的了解,可以開發(fā)出一些有特色、有創(chuàng)意的應(yīng)用程序。

  一 傳感器

  據(jù)調(diào)查,2008年全球傳感器銷售額為506億美元,預(yù)計到2010年全球傳感器銷售額可達(dá)600億美元以上。調(diào)查顯示,東歐、亞太區(qū)和加拿大成為傳感器市場增長最快的地區(qū),而美國、德國、日本依舊是傳感器市場分布最大的地區(qū)。就世界范圍而言,傳感器市場增長最快的領(lǐng)域依舊是汽車,占第二位的是過程控制,當(dāng)然現(xiàn)在也被廣泛應(yīng)用于通信。那么,傳感器的定義是什么呢?有哪些種類的傳感器呢?Android中提供了哪些傳感器呢?

  1.傳感器的定義

  傳感器是一種物理裝置或生物器官,能夠探測、感受外界的信號、物理條件(如光、熱、濕度)或化學(xué)組成(如煙霧),并將探知的信息傳遞給其他裝置或器官。國家標(biāo)準(zhǔn)GB7665—87對傳感器的定義是:“能感受規(guī)定的被測量并按照一定的規(guī)律轉(zhuǎn)換成可用信號的器件或裝置,通常由敏感元件和轉(zhuǎn)換元件組成”。傳感器是一種檢測裝置,能感受被測量的信息,并能將檢測的感受到的信息,按一定規(guī)律變換成為電信號或其他所需形式的信息輸出,以滿足信息的傳輸、處理、存儲、顯示、記錄和控制等要求。它是實現(xiàn)自動檢測和自動控制的首要環(huán)節(jié)。

  2.傳感器的種類

  可以從不同的角度對傳感器進(jìn)行分類:轉(zhuǎn)換原理(傳感器工作的基本物理或化學(xué)效應(yīng));用途;輸出信號類型以及制作材料和工藝等。

  根據(jù)工作原理,傳感器可分為物理傳感器和化學(xué)傳感器兩大類。

  物理傳感器應(yīng)用的是物理效應(yīng),諸如壓電效應(yīng),磁致伸縮現(xiàn)象,離化、極化、熱電、光電、磁電等效應(yīng)。被測信號量的微小變化都將轉(zhuǎn)換成電信號。

  化學(xué)傳感器包括那些以化學(xué)吸附、電化學(xué)反應(yīng)等現(xiàn)象為因果關(guān)系的傳感器,被測信號量的微小變化也將轉(zhuǎn)換成電信號。

  大多數(shù)傳感器是以物理原理為基礎(chǔ)運(yùn)作的?;瘜W(xué)傳感器的技術(shù)問題較多,例如可靠性問題、規(guī)模生產(chǎn)的可能性、價格問題等,解決了這些問題,化學(xué)傳感器的應(yīng)用將會有巨大增長。而有些傳感器既不能劃分為物理類,也不能劃分為化學(xué)類。

  3.Android中傳感器的種類

  Google Android操作系統(tǒng)中內(nèi)置了很多傳感器,比如G1自帶了一個非常實用的加速感應(yīng)器(微型陀螺儀),有了它,G1手機(jī)就支持重力感應(yīng)、方向判斷等功能,在部分游戲或軟件中可以自動識別屏幕的橫屏、豎屏方向來改變屏幕顯示布局。下面是Android中支持的幾種傳感器:

  Sensor.TYPE_ACCELEROMETER:加速度傳感器。

  Sensor.TYPE_GYROSCOPE:陀螺儀傳感器。

  Sensor.TYPE_LIGHT:亮度傳感器。

  Sensor.TYPE_MAGNETIC_FIELD:地磁傳感器。

  Sensor.TYPE_ORIENTATION:方向傳感器。

  Sensor.TYPE_PRESSURE:壓力傳感器。

  Sensor.TYPE_PROXIMITY:近程傳感器。

  Sensor.TYPE_TEMPERATURE:溫度傳感器。

  下面我們通過一個例子來分析Android中傳感器的使用(具體實現(xiàn)參見本書所附代碼:第9章\ Examples_09_01),這里分析的是方向傳感器(TYPE_ORIENTATION)。

  4.Android 中傳感器的功能

  要在Android中使用傳感器,首先需要了解SensorManager和SensorEventListener。顧名思義,SensorManager就是所有傳感器的一個綜合管理類,包括了傳感器的種類、采樣率、精準(zhǔn)度等。我們可以通過getSystemService方法來取得一個SensorManager對象。代碼如下:

  SensorManager mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);

  取得SensorManager對象之后,可以通過getSensorList方法來獲得我們需要的傳感器類型,保存到一個傳感器列表中。通過如下代碼可以得到一個方向傳感器:

  List sensors = mSensorManager.getSensorList(Sensor.TYPE_ORIENTATION);

  要與傳感器交互,應(yīng)用程序必須注冊以偵聽與一個或多個傳感器相關(guān)的活動。Android中提供了registerListener來注冊一個傳感器,并提供了unregisterListener來卸載一個傳感器。registerListener方法包括3個參數(shù):第1個參數(shù),接收信號的Listener實例;第2個參數(shù),想接收的傳感器類型的列表(即上一步創(chuàng)建的List對象);第3個參數(shù),接收頻度。調(diào)用之后返回一個布爾值,true表示成功,false表示失敗。當(dāng)然,之后不再使用時,我們還需要卸載。代碼如下:

  //注冊傳感器

  Boolean mRegisteredSensor = mSensorManager.registerListener(this, sensor,

  SensorManager.SENSOR_DELAY_FASTEST);

  //卸載傳感器

  mSensorManager.unregisterListener(this);

  其中,SensorEventListener是使用傳感器的核心部分,包括以下兩個方法必須實現(xiàn):

  onSensorChanged (SensorEvent event) 方法在傳感器值更改時調(diào)用。該方法只由受此應(yīng)用程序監(jiān)視的傳感器調(diào)用。該方法的參數(shù)包括一個SensorEvent對象,該對象主要包括一組浮點數(shù),表示傳感器獲得的方向、加速度等信息。例如,以下代碼可以取得其值:

  float x = event.values[SensorManager.DATA_X];

  float y = event.values[SensorManager.DATA_Y];

  float z = event.values[SensorManager.DATA_Z];

  onAccuracyChanged (Sensor sensor,int accuracy) 方法在傳感器的精準(zhǔn)度發(fā)生改變時調(diào)用。其參數(shù)包括兩個整數(shù):一個表示傳感器,另一個表示該傳感器新的準(zhǔn)確值。

  具體實現(xiàn)如代碼清單1所示。

  代碼清單1 \Examples_09_01\src\com\yarin\android\Examples_09_01\Activity01.java

  public class Activity01 extends Activity implements SensorEventListener

  {

  private boolean mRegisteredSensor;

  //定義SensorManager

  private SensorManager mSensorManager;

  public void onCreate(Bundle savedInstanceState)

  {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.main);

  mRegisteredSensor = false;

  //取得SensorManager實例

  mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);

  }

  protected void onResume()

  {

  super.onResume();

  //接收SensorManager的一個列表(Listener)

  //這里我們指定類型為TYPE_ORIENTATION(方向傳感器)

  List sensors = mSensorManager.getSensorList

  (Sensor.TYPE_ORIENTATION);

  if (sensors.size() > 0)

  {

  Sensor sensor = sensors.get(0);

  //注冊SensorManager

  //this->接收sensor的實例

  //接收傳感器類型的列表

  //接收的頻率

  mRegisteredSensor = mSensorManager.registerListener(this,

  sensor, SensorManager.SENSOR_DELAY_FASTEST);

  }

  }

  protected void onPause()

  {

  if (mRegisteredSensor)

  {

  //如果調(diào)用了registerListener

  //這里我們需要unregisterListener來卸載/取消注冊

  mSensorManager.unregisterListener(this);

  mRegisteredSensor = false;

  }

  super.onPause();

  }

  //當(dāng)精準(zhǔn)度發(fā)生改變時

  //sensor->傳感器

  //accuracy->精準(zhǔn)度

  public void onAccuracyChanged(Sensor sensor, int accuracy)

  {

  //處理精準(zhǔn)度改變

  }

  // 當(dāng)傳感器在被改變時觸發(fā)

  public void onSensorChanged(SensorEvent event)

  {

  // 接收方向傳感器的類型

  if (event.sensor.getType() == Sensor.TYPE_ORIENTATION)

  {

  //這里我們可以得到數(shù)據(jù),然后根據(jù)需要來處理

  //由于模擬器上面無法測試效果,因此我們暫時不處理數(shù)據(jù)

  float x = event.values[SensorManager.DATA_X];

  float y = event.values[SensorManager.DATA_Y];

  float z = event.values[SensorManager.DATA_Z];

  }

  }

  }

  上面的例子中演示了如何獲得方向傳感器的方向、加速度等信息,我們可以根據(jù)得到的數(shù)值與上一次得到的數(shù)值之間的關(guān)系來進(jìn)行需要的操作。SensorManager中還有很多常量和一些常用的方法,如下:

  getDefaultSensor:得到默認(rèn)的傳感器對象。

  getInclination:得到地磁傳感器傾斜角的弧度值。

  getOrientation:得到設(shè)備旋轉(zhuǎn)的方向。

  getSensorList:得到指定傳感器的列表。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 护士们的放荡交换全文| 欧美激情xxxx性bbbb| 国产又大又粗又长免费视频 | 久久精品国产亚洲av麻豆色欲| 欧美无遮挡国产欧美另类| 亚洲色国产欧美日韩| 精品伊人久久大线蕉色首页| 国产一区二区三区夜色| 香蕉视频在线观看免费| 国产日产精品_国产精品毛片| 67194熟妇在线观看线路1| 天下第一社区视频在线观看www| 七仙女欲春3一级裸片在线播放| 无翼乌无遮挡h肉挤奶百合| 久久精品2020| 日韩精品久久久肉伦网站| 亚洲一区二区三区高清视频| 欧美婷婷六月丁香综合色| 亚洲第一页在线观看| 男人j桶进女人免费视频| 免费日韩在线视频| 精品日本一区二区三区在线观看| 国产mv在线天堂mv免费观看| 野花视频在线观看免费观看最新 | 亚洲欧洲日本精品| 沦为色老头狂欲的雅婷| 亚洲精品自产拍在线观看| 男人的j进女人视频| 免费的毛片视频| 精品少妇一区二区三区视频| 四虎成人精品在永久免费| 久久99精品久久久久久hb无码| 最近中文字幕高清字幕8| 亚洲人成黄网在线观看| 欧美国产日本高清不卡| 亚洲成AV人综合在线观看| 欧美极品少妇无套实战| 亚洲欧洲精品成人久久曰| 欧美精品videosbestsexhd4k| 亚洲理论精品午夜电影| 欧美高清精品一区二区|