Cis*_*ran 6 java controls android sensor
所以我正在寻找一种方法来获得按钮按下时光传感器的当前值(显然是在Lux中).这是我用来实现光传感器控制的代码
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)
{
}
}
}
Run Code Online (Sandbox Code Playgroud)
我也有这个代码使按钮调用一个函数
<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>
Run Code Online (Sandbox Code Playgroud)
当应用程序在后台运行时,我如何获得当前的勒克斯值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;
}
}
Run Code Online (Sandbox Code Playgroud)
(将maxLux和currentLux更改为浮点数后).这就留下了根据按下按钮检索当前值的问题,这可以通过查看按下按钮时currentLux的值来完成.
| 归档时间: |
|
| 查看次数: |
14760 次 |
| 最近记录: |