获取光传感器值

| 因此,我正在寻找一种方法,只需按下按钮即可获取光传感器的当前值(显然以勒克斯计)。这是我用来实现光传感器控制的代码
public class SensorActivity extends Activity implements SensorEventListener 
{
 private final SensorManager mSensorManager;
 private final Sensor mLight;
 int minLux = 0;
 int currentLux = 0;
 int maxLux;

 public SensorActivity() 
 {
     mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
     mLight = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
 }

 protected void onResume() 
 {
     super.onResume();
     mSensorManager.registerListener((SensorEventListener) this, mLight, SensorManager.SENSOR_DELAY_NORMAL);
 }

 protected void onPause() 
 {
     super.onPause();
     mSensorManager.unregisterListener((SensorListener) this);
 }

 public void onAccuracyChanged(Sensor sensor, int accuracy) 
 {
     if(sensor.getType() == Sensor.TYPE_LIGHT)
     {

     }
 }

 public void onSensorChanged(SensorEvent event) 
 {
     if( event.sensor.getType() == Sensor.TYPE_LIGHT)
     {

     }
 }
 }
我也有这段代码,使按钮可以调用函数
<Button android:layout_width=\"122px\" android:id=\"@+id/widget35\" android:text=\"Start\" android:layout_height=\"wrap_content\" android:layout_x=\"112dp\" android:layout_y=\"249dp\"  android:onClick=\"onButtonDown\"></Button>
当应用程序在后台运行时,如何获得当前的勒克斯值?如何将当前的勒克斯值存储并保存到
int maxLux;
中?     
已邀请:
        如此处所述,无法直接获取当前传感器值,尽管某些最新版本的Android将在注册侦听器后立即生成onSensorChanged事件(允许您获得基准),而较早的版本则不会不是。因此,您唯一能做的就是希望用户正在运行更新版本的Android,或者希望该值发生更改,然后从onSensorChanged内部的event.values [0]中检索当前lux值(例如):
 public void onSensorChanged(SensorEvent event) 
 {
     if( event.sensor.getType() == Sensor.TYPE_LIGHT)
     {
        currentLux = event.values[0];
        if (currentLux > maxLux)
          maxLux = currentLux;
     }
 }
(将maxLux和currentLux更改为float之后)。这样就留下了基于按钮按下来获取当前值的问题,这可以通过在按下按钮时查看currentLux的值来完成。     

要回复问题请先登录注册