sensormanager 是系統所有感測器的管理器,有了它的例項之後就可以呼叫getdefaultsensor()方法來得到任意的感測器型別了
// // 獲取感測器管理服務
msensormanager = (sensormanager) getsystemservice(sensor_service);
// sensormanager 是系統所有感測器的管理器,有了它的例項之後就可以呼叫getdefaultsensor()方法來得到任意的感測器型別了
sensor sensor = msensormanager.getdefaultsensor(sensor.type_light);
// 接下來我們需要對感測器輸出的訊號進行監聽,這就要借助 sensoreventlistener 來實現了。
// sensoreventlistener 是乙個介面,其中定義了 onsensorchanged()和onaccuracychanged()這兩個方法
sensoreventlistener listener = new sensoreventlistener()
@override
public void onsensorchanged(sensorevent event)
};// 當感測器的精度發生變化時就會呼叫 onaccuracychanged()方法,當感測器監測到的數值發生變化時就會呼叫 onsensorchanged()方法。可以看到 onsensorchanged()
// 方法中傳入了乙個 sensorevent 引數,這個引數裡又包含了乙個 values 陣列,所有感測器輸出的資訊都是存放在這裡的。
// 下 面 我 們 還 需 要 調 用 sensormanager 的 registerlistener() 方 法 來 注 冊sensoreventlistener 才能使其生效,
// registerlistener()方法接收三個引數,第乙個引數就是 sensoreventlistener 的例項,第二個引數是 sensor 的例項,
// 這兩個引數我們在前面都已經成功得到了。第三個引數是用於表示感測器輸出資訊的更新速率sensor_delay_ui 、 sensor_delay_normal 、
// sensor_delay_game 和sensor_delay_fastest 這四種值可選,它們的更新速率是依次遞增的
msensormanager.registerlistener(listener, sensor, sensormanager.sensor_delay_normal);
// 當程式退出或感測器使用完畢時, 一定要呼叫 unregisterlistener ()方法將使用的資源釋放掉
msensormanager.unregisterlistener(listener);
boolean registerlistener(sensoreventlistener listener,sensor sensor,int rateus)
上面方法引數的意義:listener:感測器的***、sensor:待監聽的感測器、rateus:感測器的取樣率。
androidsensormanager.registerlistener(this, androidsensormanager.getdefaultsensor(sensor.type_orientation), sensormanager.sensor_delay_ui);
sensor引數下有多有多個常量,表示不同的感測器名稱:
加速感測器(sensor.type_accelerometer)
磁場感測器(sensor.type_magnetic_fleld)
光線感測器 (sensor.type_light )
方向感測器 (type_orientation)
sensormanager下有多個常量,表示獲得感測器的資料速度。
sensormanager.sensor_delay_fastest: 以最快的速度獲得感測器資料
sensor_delay_game: 適合與在遊戲中獲得感測器資料
sensor_delay_ui :適合於在ui空間中獲得資料
sensor_delay_normal: 以一般的速度獲得感測器資料
手機感測器原理
現在山寨手機功能真是太強大了,價效比真是太高了。今天同事花620塊錢,買了個山寨手機,我拿來玩了一下,功能真是太強大了。平常手機所有功能都有,攝像機,錄影機啊,還能看電視,還能動感選擇歌曲,電影,晃一下手機就可以了,也就是傳說中的重力感應技術。重力感應技術,一直以為那是跟自己很遙遠的技術,今天確實就...
Android感測器(一) 感測器列表
感測器型別有很多種 每個android手機含有其中幾種感測器 通過乙個小例子實現 tx1 textview findviewbyid r.id textview01 從感測器管理器中獲得全部的感測器列表 listallsensors initsensors 顯示有多少個感測器 tx1.settext...
Android感測器的應用
安卓裝置上有很多感測器如何呼叫它們呢?1 首先是先獲得sensormanager物件 sensormanager manager sensormanager getsystemservice context.sensor service 2 利用sensormanager物件獲得sensor物件 獲...