開發平台:
Android studio (version 2.2.3)
實機測試平台:
ASUS Zenfone6 (Android 5)
實作內容:
由於以後的程式開發會需要使用到手機內部的感應器,所以先自己學習如何取得手機感應器的值。這次只有取出Light、Accelerometer的數值。
Ps. 本來有打算要取tempature,但是發現並不是每隻手機都有支援(我的 Zenfone6 沒試出來,所以可能不支援吧,也有可能是我沒打好啦),所以就沒有實作了。
1. 先取得SensorManager的服務。
eg.
SensorManager sensor=(SensorManger)getSystemService(SENSOR_SERVICE)
2. 建立一個監聽事件的呼叫介面。
eg.
SensorEventListener listen=new SensorEventListener(){
@Override
public void onSensorChanged(SensorEvent event){}
@Override
public void onAccuracyChanged(Sensor sensor,int accuracy){}
}
3.因為感應器很耗資源,所以必須在onPause中取消感應器的監聽事件,onResume中在重新對感應器做註冊監聽事件。(整個流程閱讀過android activity流程會比較清楚)
eg.
@Override
protected void onResume(){
super.onResume();
sensor.registerListener(listen,sensor.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
Sensor.SENSOR_DELAY_NORMAL);
}
@Override
protected void onPause(){
super.onPause();
sensor.unregisterListener(listen);
}
測試結果:
程式檔:
留言列表