在上一篇中,講到了怎麼擷取手機的感應器http://blog.csdn.net/nainai007/article/details/7615364,在這裡是擷取感應器的值。
要擷取感應器的值,首先要為應用程式註冊感應器時間,然後接受感應器傳來的資料。
MainActivity的代碼為:
package com.nine.sensordemo;import android.app.Activity;import android.hardware.Sensor;import android.hardware.SensorEvent;import android.hardware.SensorEventListener;import android.hardware.SensorManager;import android.os.Bundle;import android.widget.TextView;public class MainActivity extends Activity {private SensorManager sm;private Sensor ligthSensor;private StringBuffer sb;private TextView tvValue; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); sb = new StringBuffer(); tvValue = (TextView) findViewById(R.id.tvValue); //擷取SensorManager對象 sm = (SensorManager) getSystemService(SENSOR_SERVICE); //擷取Sensor對象 ligthSensor = sm.getDefaultSensor(Sensor.TYPE_LIGHT); sm.registerListener(new MySensorListener(), ligthSensor, SensorManager.SENSOR_DELAY_NORMAL); } public class MySensorListener implements SensorEventListener {public void onAccuracyChanged(Sensor sensor, int accuracy) {}public void onSensorChanged(SensorEvent event) {//擷取精度float acc = event.accuracy;//擷取光線強度float lux = event.values[0];sb.append("acc ----> " + acc);sb.append("\n");sb.append("lux ----> " + lux);sb.append("\n");tvValue.setText(sb.toString());} } }
這裡我主要擷取手機的光線感應器,由於外界光線的變化,從而觸發感應器時間的發生,程式通過擷取感應器的精度和光線強度的值,並顯示出來