昨天利用vibrator將手機改造成振動器,女票大人很滿意,今天再接再厲,研究一下android感測器如何開發……
主要涉及到三個類,sensor, sensormanager, sensoreventlistener。看名字就知道大概意思了,sensor感測器,sensormanager感測器管理者, sensoreventlistener感測器事件監聽。
sensormanager開發者文件給的類簡介,是這麼介紹的:
sensormanager lets you access the device』s sensors. get an instance但是也有乙個感測器是例外:trigger sensor。不深究,看名字猜一下,應該是不能禁用觸控感測器。of this class bycalling context.getsystemservice()with the argument sensor_service.
always make sure to disable sensors you don』t need, especially when
your activity is paused. failing to do so can drain the battery in
just a few hours. note that the system will not disable sensors
automatically when the screen turns off.
說了一點注意事項,就是當不需要的時候,一定要確保禁用感測器了,否則電量會快速耗盡。
開發者文件的例子很好,拷貝過來講解。
public
class
sensoractivity
extends
activity, implements
sensoreventlistener
protected
void
onresume()
protected
void
onpause()
//這是介面類sensoreventlistener必須實現的方法
public
void
onaccuracychanged(sensor sensor, int accuracy)
public
void
onsensorchanged(sensorevent event)
}
由該例子可知開發感測器應用的大致步驟:
1. 呼叫context的getsystemservice(sensor_service)方法來獲取sensormanager物件。
2. 呼叫sensormanager的getdefaultsensor( )方法來獲取指定型別的感測器。
3.在activity的onresume()方法中呼叫sensormanager的registerlistener()方法,為指定的感測器註冊***,程式通過實現***即可獲取感測器傳回來的資料。
registerlistener()方法有三個引數,分別如下:
istener a sensoreventlistener object.最後實現乙個例子,該例子可在《瘋狂的android講義》p622中找到。sensor the sensor to registerto.
samplingperiodus 獲取資料的頻率
public
class
mainactivity
extends
activity
implements
sensoreventlistener
@override
protected
void
onresume()
@override
protected
void
onstop()
@override
public
void
onsensorchanged(sensorevent sensorevent)
@override
public
void
onaccuracychanged(sensor sensor, int i)
}
安卓感測器開發之指南針
很簡單,主要是一些常用感測器的監聽,指南針還是挺好用的。布局 程式 package zhinanzheng.com import android.hardware.sensor import android.hardware.sensorevent import android.hardware.s...
安卓開發中光線感測器的運用步驟
public class mainactivity extends implements sensoreventlistener sensor light manager.getdefaultsensor sensor.type light 獲取光線感測器的管理 onresume 中註冊感測器,先讓...
2 感測器 動作感測器
動作感測器概述 android平台支援一些用於監視裝置動作的感測器 這樣的感測器共有5個 其中兩個 加速感測器和陀螺儀感測器 是純的硬體感測器。另外三個 重力感測器 線性加速感測器和旋轉向量感測器 可能是硬體感測器,也可能是軟體感測器。例如,在一些android裝置中,這些基於軟體的感測器會從加速和...