获取Android 光感Sensor的值

在上一篇中,讲到了怎么获取手机的传感器http://blog.csdn.net/nainai007/article/details/7615364,在这里是获取传感器的值。

要获取传感器的值,首先要为应用程序注册传感器时间,然后接受传感器传来的数据。

MainActivity的代码为:

[java]  view plain copy
  1. package com.nine.sensordemo;  
  2.   
  3. import android.app.Activity;  
  4. import android.hardware.Sensor;  
  5. import android.hardware.SensorEvent;  
  6. import android.hardware.SensorEventListener;  
  7. import android.hardware.SensorManager;  
  8. import android.os.Bundle;  
  9. import android.widget.TextView;  
  10.   
  11. public class MainActivity extends Activity {  
  12.       
  13.     private SensorManager sm;  
  14.     private Sensor ligthSensor;  
  15.     private StringBuffer sb;  
  16.     private TextView tvValue;  
  17.       
  18.     @Override  
  19.     public void onCreate(Bundle savedInstanceState) {  
  20.         super.onCreate(savedInstanceState);  
  21.         setContentView(R.layout.main);  
  22.           
  23.         sb = new StringBuffer();  
  24.         tvValue = (TextView) findViewById(R.id.tvValue);  
  25.           
  26.         //获取SensorManager对象  
  27.         sm = (SensorManager) getSystemService(SENSOR_SERVICE);  
  28.         //获取Sensor对象  
  29.         ligthSensor = sm.getDefaultSensor(Sensor.TYPE_LIGHT);  
  30.           
  31.         sm.registerListener(new MySensorListener(), ligthSensor, SensorManager.SENSOR_DELAY_NORMAL);      
  32.     }  
  33.       
  34.     public class MySensorListener implements SensorEventListener {  
  35.   
  36.         public void onAccuracyChanged(Sensor sensor, int accuracy) {  
  37.               
  38.         }  
  39.   
  40.         public void onSensorChanged(SensorEvent event) {  
  41.             //获取精度  
  42.             float acc = event.accuracy;  
  43.             //获取光线强度  
  44.             float lux = event.values[0];  
  45.               
  46.             sb.append("acc ----> " + acc);  
  47.             sb.append("\n");  
  48.             sb.append("lux ----> " + lux);  
  49.             sb.append("\n");  
  50.               
  51.             tvValue.setText(sb.toString());  
  52.         }  
  53.           
  54.     }  
  55.       
  56. }  

这里我主要获取手机的光线传感器,由于外界光线的变化,从而触发传感器时间的发生,程序通过获取传感器的精度和光线强度的值,并显示出来

转自:

http://blog.csdn.net/nainai007/article/details/7616441

你可能感兴趣的:(Android)