Android手機自帶感測器的呼叫

2021-10-09 05:09:00 字數 2070 閱讀 8999

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物件 獲...