女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

您好,歡迎來(lái)電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊(cè)]

您的位置:電子發(fā)燒友網(wǎng)>電子元器件>傳感器>

淺談Android傳感器 III-磁傳感器

2018年10月07日 15:37 網(wǎng)絡(luò)整理 作者:工程師譚軍 用戶評(píng)論(0
?
  磁傳感器是把磁場(chǎng)、電流、應(yīng)力應(yīng)變、溫度、光等外界因素引起敏感元件磁性能變化轉(zhuǎn)換成電信號(hào),以這種方式來(lái)檢測(cè)相應(yīng)物理量的器件。
?
  磁傳感器廣泛用于現(xiàn)代工業(yè)電子產(chǎn)品中以感應(yīng)磁場(chǎng)強(qiáng)度來(lái)測(cè)量電流、位置、方向等物理參數(shù)。在現(xiàn)有技術(shù)中,有許多不同類型的傳感器用于測(cè)量磁場(chǎng)和其他參數(shù)。
?
  磁傳感器是把磁場(chǎng)、電流、應(yīng)力應(yīng)變、溫度、光等外界因素引起敏感元件磁性能變化轉(zhuǎn)換成電信號(hào),以這種方式來(lái)檢測(cè)相應(yīng)物理量的器件。磁傳感器分為三類:指南針、磁場(chǎng)感應(yīng)器、位置傳感器。指南針:地球會(huì)產(chǎn)生磁場(chǎng),如果你能測(cè)地球表面磁場(chǎng)就可以做指南針。電流傳感器:電流傳感器也是磁場(chǎng)傳感器。電流傳感器可以用在家用電器、智能電網(wǎng)、電動(dòng)車、風(fēng)力發(fā)電等等。位置傳感器: 如果一個(gè)磁體和磁傳感器相互之間有位置變化,這個(gè)位置變化是線性的就是線性傳感器,如果轉(zhuǎn)動(dòng)的就是轉(zhuǎn)動(dòng)傳感器。
?
  大生活中用到很多磁傳感器,比如說(shuō)指南針,電腦硬盤、家用電器等等。
?
  在傳統(tǒng)產(chǎn)業(yè)改造中的應(yīng)用及市場(chǎng)
?
  據(jù)報(bào)道,1995年僅工業(yè)過(guò)程控制傳感器的全球市場(chǎng)已達(dá)到260億美元;2001年計(jì)算機(jī)HDD用SV-GMR磁頭的市場(chǎng)超過(guò)了4000億日元(約合34億美元)。若采用新型微型磁傳感器,既使操作更簡(jiǎn)便,又提高了可靠性,增長(zhǎng)了器件壽命,降低了成本。
?
  使用新型磁傳感器可以顯著提高測(cè)量和控制精度,如使用GMI(巨磁阻抗)磁場(chǎng)傳感器,檢測(cè)分辨率和常用磁通門磁強(qiáng)計(jì)一樣,而響應(yīng)速度卻快了一倍,消耗功率僅為后者的1%;若用霍爾器件,其分辨率僅4A/m,而所需外場(chǎng)比前者高300余倍;在應(yīng)力檢測(cè)中,SI 傳感器的靈敏度是常用電阻絲的2000倍高,是半導(dǎo)體應(yīng)變規(guī)的20~40倍。工業(yè)機(jī)床的油壓或氣壓汽缸活塞位置檢測(cè),廣泛采用套在活塞桿上的永磁環(huán)和AMR元件組成的磁傳感器,檢測(cè)精度達(dá)0.1mm,檢測(cè)速度可在0~500mm/s內(nèi)以高低速度變換;改用GMI或SV-GMR傳感器后,測(cè)量精度至少可以提高1個(gè)數(shù)量級(jí)。在機(jī)床數(shù)控化時(shí)代,數(shù)字磁尺幫助設(shè)計(jì)師們實(shí)現(xiàn)了閉環(huán)控制。使用絕對(duì)信號(hào)輸出的磁尺,則不受噪聲、電源電壓波動(dòng)等干擾,也不必原點(diǎn)復(fù)位。使用工作狀態(tài)磁敏開關(guān),還可以完成手動(dòng)與數(shù)控之間的轉(zhuǎn)換。
?
  旋轉(zhuǎn)磁編碼器在旋轉(zhuǎn)量的檢測(cè)控制中起關(guān)鍵作用,它在數(shù)控機(jī)床、機(jī)器人、工廠自動(dòng)化設(shè)備的位置檢測(cè)、傳輸速度控制,磁盤、打印機(jī)之類的自動(dòng)化設(shè)備通訊設(shè)備的旋轉(zhuǎn)量檢測(cè)中都是不可缺少的重要部件。其檢測(cè)對(duì)象是光磁圖形,不受油霧粉塵的影響,因此比目前最先進(jìn)的光編碼器的可靠性高壽命長(zhǎng),尤其適合于自動(dòng)焊接、油漆機(jī)器人和與鋼鐵有關(guān)的位置檢測(cè)以及各種金屬、木材、塑料等加工行業(yè)的應(yīng)用。而仍大量使用光編碼器,由于這種器件易受粉塵、油污和煙霧的影響,用在自動(dòng)焊接、油漆機(jī)器人、紡織和鋼鐵、木料、塑料等的加工中,可靠性極差。應(yīng)用AMR、GMR 、GMI敏感元件構(gòu)成的旋轉(zhuǎn)磁編碼器,就不存在上述缺點(diǎn),因此,它們的市場(chǎng)需求年增長(zhǎng)率在30%以上。在家用電器和節(jié)能產(chǎn)品中也也有其廣泛的應(yīng)用潛力,在節(jié)能環(huán)保產(chǎn)品中也大有用武之地。若使用微型磁編碼器和控制微機(jī)一體化,更有利于簡(jiǎn)化控制系統(tǒng)結(jié)構(gòu),減少元件數(shù)和占空體積,這在精密制造和加工業(yè)中意義十分重大。
?
  在環(huán)境監(jiān)測(cè)中的應(yīng)用
?
  環(huán)境保護(hù)的前提是對(duì)各個(gè)環(huán)境參數(shù)(溫度、氣壓、大氣成份、噪聲。..。..。)的監(jiān)測(cè),這里需要使用多種大量的傳感器。采用強(qiáng)磁致伸縮非晶磁彈微型磁傳感器,可以同時(shí)測(cè)量真空或密閉空間的溫度和氣壓,而且不用接插件,可以遙測(cè)和遠(yuǎn)距離訪問(wèn)。在食品包裝、環(huán)境科學(xué)實(shí)驗(yàn)等方面,應(yīng)用前景廣闊。
?
  在交通管制中的應(yīng)用
?
  交通事故和交通阻塞是城市中和城市間交通存在的一個(gè)大問(wèn)題。國(guó)內(nèi)外都在加強(qiáng)高速公路行車支持道路系統(tǒng)(AHS)、智能運(yùn)輸系統(tǒng)(ITS)和道路交通信息系統(tǒng)(VICS)等的開發(fā)與建設(shè)。在這些新系統(tǒng)中,高靈敏度、高速響應(yīng)微型磁傳感器大有用武之地。例如,用分辨率可達(dá)1nT的GMI和SI傳感器,可構(gòu)成ITS傳感器(作高速路上的道路標(biāo)志,測(cè)車輪角度,貨車近接距離),汽車通過(guò)記錄儀(測(cè)通行方向、速度、車身長(zhǎng)度、車種識(shí)別),停車場(chǎng)成批車輛傳感器,加速度傳感器(測(cè)車輛通過(guò)時(shí)路橋的振動(dòng)等)。
?
  磁傳感器在電子羅盤中的應(yīng)用
?
  幾個(gè)世紀(jì)以來(lái),人們?cè)趯?dǎo)航中一直使用磁羅盤。有資料顯示早在二千多年前中國(guó)人就開始使用天然磁石-一種磁鐵礦來(lái)指示水平方向。電子羅盤(數(shù)字羅盤,電子指南針,數(shù)字指南針)是測(cè)量方位角(航向角)比較經(jīng)濟(jì)的一種電子儀器。如今電子指南針廣泛應(yīng)用于汽車和手持電子羅盤,手表,手機(jī),對(duì)講機(jī),雷達(dá)探測(cè)器,望遠(yuǎn)鏡,探星儀,穆斯林麥加探測(cè)器(穆斯林鐘),手持 GPS 系統(tǒng),尋路器,武器/導(dǎo)彈導(dǎo)航( 航位推測(cè) ),位置/方位系統(tǒng),安全/定位設(shè)備,汽車、航海和航空的高性能導(dǎo)航設(shè)備,電子游戲機(jī)設(shè)備等需要方向或姿態(tài)顯示的設(shè)備。
?
  地球本身是一個(gè)大磁鐵,地球表面的磁場(chǎng)大約為0.5Oe,地磁場(chǎng)平行地球表面并始終指向北方。利用GMR薄膜可做成用來(lái)探測(cè)地磁場(chǎng)的傳感器。圖5顯示這種傳感器的具體工作原理。我們可以制出能夠探測(cè)磁場(chǎng)X和Y方向分量的集成GMR傳感器。此傳感器可作為羅盤并應(yīng)用在各種交通工具上作為導(dǎo)航裝置。美國(guó)的NVE公司已經(jīng)把GMR傳感器用在車輛的交通控制系統(tǒng)上。例如,放置在高速公路邊的GMR傳感器可以計(jì)算和區(qū)別通過(guò)傳感器的車輛。如果同時(shí)分開放置兩個(gè)GMR傳感器,還可以探測(cè)出通過(guò)車輛的速度和車輛的長(zhǎng)度,當(dāng)然GMR也可用在公路的收費(fèi)亭,從而實(shí)現(xiàn)收費(fèi)的自動(dòng)控制。另外高靈敏度和低磁場(chǎng)的傳感器可以用在航空、航天及衛(wèi)星通信技術(shù)上。大家知道,在軍事工業(yè)中隨著吸波技術(shù)的發(fā)展,軍事物件可以通過(guò)覆蓋一層吸波材料而隱蔽,但是它們無(wú)論如何都會(huì)產(chǎn)生磁場(chǎng),因此通過(guò)GMR磁場(chǎng)傳感器可以把隱蔽的物體找出來(lái)。當(dāng)然,GMR磁場(chǎng)傳感器可以應(yīng)用在衛(wèi)星上,用來(lái)探測(cè)地球表面上的物體和底下的礦藏分布。
?
  門磁傳感器在智能家居中的應(yīng)用
?
  在智能家居門禁系統(tǒng)中門磁開關(guān)的作用是負(fù)責(zé)門磁通電否,通電帶磁(閉門),斷電消磁(開門),門磁安裝于門與門套上,開關(guān)安裝于屋內(nèi),配合自動(dòng)閉門器使用,一般可承受150公斤的拉力。
?
  有線門磁為嵌入式安裝更加隱蔽,感應(yīng)門窗的開合,適用于木質(zhì)或鋁合金門窗發(fā)出有線常閉/常開開關(guān)信號(hào)。門磁是用來(lái)探測(cè)門、窗、抽屜等是否被非法打開或移動(dòng)。它由無(wú)線發(fā)射器和磁塊兩部分組成。門磁系統(tǒng)其實(shí)和床磁等原理相同。

  Android平臺(tái)提供了兩種傳感器讓我們可以確定設(shè)備的位置: 地磁傳感器和方向傳感器。 Android還提供了一種傳感器讓我們可以決定人臉離手機(jī)多近的時(shí)候關(guān)閉屏幕(距離傳感器proximity sensor)。 地磁傳感器和距離傳感器都是基于硬件的。 大多數(shù)手持設(shè)備供應(yīng)商都有提供一個(gè)地磁傳感器。 同樣, 手持設(shè)備制造商通常包含一個(gè)距離傳感器來(lái)在通話的時(shí)候決定何時(shí)關(guān)閉屏幕。 方向傳感器(orientation sensor)是基于軟件的, 它通過(guò)加速度傳感器和地磁傳感器來(lái)計(jì)算數(shù)據(jù)。 但是方向傳感器在Android2.2中已經(jīng)不推薦使用。

  位置傳感器在確定設(shè)備在世界中所處的位置時(shí)會(huì)很有用。 比如我們可以使用地磁傳感器跟加速傳感器合作來(lái)決定設(shè)備相對(duì)于地磁北極的位置。 我們還可以使用方向傳感器(或者基于傳感器的方向方法)來(lái)確定設(shè)備相對(duì)于APP框架為參考的位置。 位置傳感器通常不用于監(jiān)測(cè)設(shè)備移動(dòng)或者運(yùn)動(dòng), 比如搖動(dòng), 傾斜等。

  地磁傳感器和方向傳感器通過(guò)SensorEvent的多維數(shù)組返回?cái)?shù)據(jù)。 栗如, 方向傳感器在每次返回傳感器事件的時(shí)候提供了地磁力在三維空間的強(qiáng)度值。 同樣方向傳感器則提供了方位角(Yaw偏航角), 俯仰角(pitch)和翻滾角(roll)。 下表提供了Android平臺(tái)各位置傳感器的信息

   SensorEvent.values[0]

  沿x軸旋轉(zhuǎn)矢量分量(x*sin(θ/2 ))。

  無(wú)單位

  SensorEvent.values[1]

  沿y軸旋轉(zhuǎn)矢量分量(y*sin(θ/2 ))。

  SensorEvent.values[2]

  沿z軸旋轉(zhuǎn)矢量分量(z*sin(θ/2 ))。

  TYPE_GEOMAGNETIC_ROTATION_VECTOR

  SensorEvent.values[0]

  沿x軸旋轉(zhuǎn)矢量分量(x*sin(θ/2 ))。

  無(wú)單位

  SensorEvent.values[1]

  沿y軸旋轉(zhuǎn)矢量分量(y*sin(θ/2 ))。

  SensorEvent.values[2]

  沿z軸旋轉(zhuǎn)矢量分量(z*sin(θ/2 ))。

  TYPE_MAGNETIC_FIELD

  SensorEvent.values[0]

  沿x軸的地磁強(qiáng)度

  μT

  SensorEvent.values[1]

  沿y軸的地磁強(qiáng)度

  SensorEvent.values[2]

  沿z軸的地磁強(qiáng)度

  TYPE_MAGNETIC_FIELD_UNCALIBRATED

  SensorEvent.values[0]

  沿x軸的地磁強(qiáng)度(無(wú)硬鐵校準(zhǔn)hard iron calibration)

  μT

  SensorEvent.values[1]

  沿y軸的地磁強(qiáng)度(無(wú)硬鐵校準(zhǔn)hard iron calibration)

  SensorEvent.values[2]

  沿z軸的地磁強(qiáng)度(無(wú)硬鐵校準(zhǔn)hard iron calibration)

  SensorEvent.values[3]

  沿x軸鐵偏差校準(zhǔn)(Iron bias estimation)

  SensorEvent.values[4]

  沿y軸鐵偏差校準(zhǔn)(Iron bias estimation)

  SensorEvent.values[5]

  沿z軸鐵偏差校準(zhǔn)(Iron bias estimation)

  TYPE_ORIENTATION①

  SensorEvent.values[0]

  方位角(繞z軸的角度)

  度

  SensorEvent.values[1]

  俯仰角(pitch) (繞x軸的角度)

  SensorEvent.values[2]

  翻滾角(roll) (繞y軸的角度)

  TYPE_PROXIMITY

  SensorEvent.values[0]

  與對(duì)象的距離②

  cm

 ?、?該傳感器在Android2.2版本中不再推薦使用。 Sensor framework提供了備用的方法, 下文會(huì)有介紹。

 ?、?一些距離傳感器只提供二進(jìn)制數(shù)據(jù)代表遠(yuǎn)和近。

  使用游戲旋轉(zhuǎn)矢量傳感器:

  游戲旋轉(zhuǎn)矢量傳感器跟旋轉(zhuǎn)矢量傳感器是相同的, 除了它不使用地磁場(chǎng)。 因此Y軸不指向北邊而是一些別的參考系。

  因?yàn)橛螒蛐D(zhuǎn)矢量傳感器不使用地磁場(chǎng), 相關(guān)的方向因不受磁場(chǎng)影響而更加準(zhǔn)確。 如果不在意北邊在哪的話可以在游戲中使用該傳感器, 這時(shí)候普通的旋轉(zhuǎn)矢量就不合適了, 因?yàn)樗蕾囉诖艌?chǎng)。 下面的代碼演示了如何獲取一個(gè)該傳感器的實(shí)例:

  private SensorManager mSensorManager;

  private Sensor mSensor;

  。..

  mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

  mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_GAME_ROTATION_VECTOR);

  使用地磁旋轉(zhuǎn)矢量傳感器:

  地磁旋轉(zhuǎn)矢量傳感器跟旋轉(zhuǎn)矢量傳感器一樣, 但是它使用地磁代替陀螺儀。 所以它的精確度會(huì)比普通旋轉(zhuǎn)矢量傳感器要低, 但是功耗也降低了。 應(yīng)該只有當(dāng)需要在后臺(tái)獲取旋轉(zhuǎn)信息而不想要消耗太多電量的時(shí)候才使用它。 該傳感器當(dāng)與批處理(batching)一起是最有用的。

  下面的代碼演示了如何獲取實(shí)例:

  private SensorManager mSensorManager;

  private Sensor mSensor;

  。..

  mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

  mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_GEOMAGNETIC_ROTATION_VECTOR);

  方向傳感器:

  方向傳感器讓我們可以監(jiān)測(cè)設(shè)備相對(duì)于地球參考系的位置(特指地磁北極)。 下面代碼演示了如何獲取該傳感器實(shí)例:

  private SensorManager mSensorManager;

  private Sensor mSensor;

  。..

  mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

  mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);

  方向傳感器通過(guò)使用設(shè)備的地磁場(chǎng)傳感器和設(shè)備的加速度計(jì)合作獲得它的數(shù)據(jù)。 通過(guò)使用這倆硬件傳感器, 方向傳感器可以提供這三個(gè)維度的數(shù)據(jù):

  l 方位角(繞z軸的角度)。 這個(gè)角度在地磁北極和設(shè)備的y軸之間。 比如如果設(shè)備的y軸對(duì)準(zhǔn)地磁北極, 那么該值是0, 如果設(shè)備的y軸對(duì)準(zhǔn)南極, 則該值為180. 同樣的, 當(dāng)y軸指向東邊, 該值是90, 指向西邊則為270.

  l 俯仰角(pitch) (繞x軸的角度)。 處于z軸正方向和y軸正方向之間的時(shí)候該值是正的, z軸正方向和y軸負(fù)方向的時(shí)候, 該值是負(fù)的。 范圍是180度~-180度。

  l 翻滾角(roll) (繞y軸的角度)。 當(dāng)處于z軸正方向和x軸正方向時(shí)該值為正。 Z軸正方向和x軸負(fù)方向的時(shí)候, 該值為負(fù)。 取值范圍是90~-90度。

  這個(gè)定義跟航空學(xué)中的方位角, 俯仰角和翻滾角是不一樣的, 航空學(xué)中x軸表示沿飛機(jī)的長(zhǎng)邊(飛機(jī)尾部到頭部)。 此外由于歷史原因, 翻滾角在順時(shí)針?lè)较驗(yàn)檎〝?shù)學(xué)上講, 它應(yīng)該在逆時(shí)針?lè)较驗(yàn)檎?/p>

  方向傳感器通過(guò)處理加速度計(jì)和地磁場(chǎng)傳感器的數(shù)據(jù)來(lái)得到它自己的數(shù)據(jù)。 因?yàn)樯婕暗奶幚砣蝿?wù)比較繁重, 所以精度和準(zhǔn)確度被減少(只有當(dāng)翻滾角分量為0的時(shí)候它的數(shù)據(jù)才可靠)。 因此, 方向傳感器在Android2.2中就不推薦使用了。 官方推薦使用getRotationMatrix()方法和getOrientation()方法結(jié)合來(lái)計(jì)算方向值, 代替方向傳感器。 我們還可以使用remapCoordinateSystem()方法來(lái)映射方向值到APP參考框架。 下面的代碼演示了如何從方向傳感器直接獲得方向數(shù)據(jù), 只有幾乎沒(méi)有翻滾角的時(shí)候才推薦這樣使用:

  public class SensorActivity extends Activity implements SensorEventListener {

  private SensorManager mSensorManager;

  private Sensor mOrientation;

  @Override

  public void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.main);

  mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

  mOrientation = mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);

  }

  @Override

  public void onAccuracyChanged(Sensor sensor, int accuracy) {

  // Do something here if sensor accuracy changes.

  // You must implement this callback in your code.

  }

  @Override

  protected void onResume() {

  super.onResume();

  mSensorManager.registerListener(this, mOrientation, SensorManager.SENSOR_DELAY_NORMAL);

  }

  @Override

  protected void onPause() {

  super.onPause();

  mSensorManager.unregisterListener(this);

  }

  @Override

  public void onSensorChanged(SensorEvent event) {

  float azimuth_angle = event.values[0];

  float pitch_angle = event.values[1];

  float roll_angle = event.values[2];

  // Do something with these orientation angles.

  }

  }

  我們并不會(huì)經(jīng)常用到處理方向傳感器的原始數(shù)據(jù)。

  使用地磁場(chǎng)傳感器:

  地磁場(chǎng)傳感器讓我們可以監(jiān)測(cè)地球磁場(chǎng)的變化。 下面的代碼展示如何獲取它的實(shí)例:

  private SensorManager mSensorManager;

  private Sensor mSensor;

  。..

  mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

  mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);

  該傳感器提供了三維磁場(chǎng)的原始數(shù)據(jù)。 通常我們不需要直接使用該傳感器, 而是使用旋轉(zhuǎn)矢量傳感器來(lái)確定旋轉(zhuǎn)運(yùn)動(dòng)的原始數(shù)據(jù), 或者我們還可以使用加速度計(jì)和地磁場(chǎng)傳感器跟getRotationMatrix()方法合作獲取旋轉(zhuǎn)矩陣和傾角矩陣。 然后可以使用這些矩陣同getOrientation()和getInclination()方法來(lái)獲得方位角和地磁傾角數(shù)據(jù)。

  使用未校正的磁力計(jì):

  未校正的磁力計(jì)跟地磁場(chǎng)傳感器相似, 但是它沒(méi)有”硬鐵校正”(hard iron calibration)。 工廠校正和溫度校正依然應(yīng)用于磁場(chǎng)。 未校正的磁力計(jì)在處理壞硬鐵估計(jì)(bad hard iron estimations)的時(shí)候有用。 通常geomagneticsensor_event.value[0]將會(huì)接近uncalibrated_magnetometer_event.values[0]- uncalibrated_magnetometer_event.values[3]。 也就是, calibrated_x ~= uncalibrated_x - bias_estimate_x.

  注意: 未校正傳感器提供更多的原始結(jié)果并可能包括一些偏差, 但是它們的測(cè)量值包含更少的校正導(dǎo)致的跳變。 一些APP可能會(huì)更想這些未校正的原始數(shù)據(jù), 因?yàn)樗麄兏悠交涂煽俊?比如當(dāng)APP想要實(shí)現(xiàn)自己的傳感器合成, 則他們可能更喜歡沒(méi)有矯正過(guò)的數(shù)據(jù)。

  除了磁場(chǎng), 未校正磁力計(jì)還會(huì)提供硬鐵校正在每個(gè)軸的估計(jì)值。 下面代碼演示了如何獲取該傳感器實(shí)例:

  private SensorManager mSensorManager;

  private Sensor mSensor;

  。..

  mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

  mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD_UNCALIBRATED);

  使用距離傳感器(Proximity Sensor):

  距離傳感器讓我們可以確定一個(gè)目標(biāo)與設(shè)備的距離。 下面代碼演示了如何獲取它的實(shí)例:

  private SensorManager mSensorManager;

  private Sensor mSensor;

  。..

  mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

  mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);

  距離傳感器通常用來(lái)確定手持設(shè)備跟人臉的距離(比如用戶接到電話或者在打電話的時(shí)候)。 大多數(shù)距離傳感器返回絕對(duì)距離, 但是它們中的個(gè)別分子會(huì)返回”遠(yuǎn)/近”這樣的信息。 下面的代碼展示給我們?nèi)绾问褂眠@玩意兒:

  public class SensorActivity extends Activity implements SensorEventListener {

  private SensorManager mSensorManager;

  private Sensor mProximity;

  @Override

  public final void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.main);

  // Get an instance of the sensor service, and use that to get an instance of

  // a particular sensor.

  mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

  mProximity = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);

  }

  @Override

  public final void onAccuracyChanged(Sensor sensor, int accuracy) {

  // Do something here if sensor accuracy changes.

  }

  @Override

  public final void onSensorChanged(SensorEvent event) {

  float distance = event.values[0];

  // Do something with this sensor data.

  }

  @Override

  protected void onResume() {

  // Register a listener for the sensor.

  super.onResume();

  mSensorManager.registerListener(this, mProximity, SensorManager.SENSOR_DELAY_NORMAL);

  }

  @Override

  protected void onPause() {

  // Be sure to unregister the sensor when the activity pauses.

  super.onPause();

  mSensorManager.unregisterListener(this);

  }

  }


非常好我支持^.^

(0) 0%

不好我反對(duì)

(0) 0%

( 發(fā)表人:金巧 )

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請(qǐng)遵守相關(guān)規(guī)定!

      ?