我有以下代码使用光传感器,但无法显示 event.value[0] 的值...它仅显示带有消息“On SensorChanged”的 toast 文本也没有设置到电视,我出错了..
这是代码
public void onSensorChanged(SensorEvent event)
{
if( event.sensor.getType() == Sensor.TYPE_LIGHT)
{
tv.setText("value: " + event.values[0] + " lux" );
Toast.makeText(getApplicationContext(),"On SensorChanged"+ event.values[0],Toast.LENGTH_SHORT).show();
Log.d("Sensor Changed", "onSensor Change :" + brightness);
}
}
最佳答案
你注册监听器了吗?使用传感器分为三个部分
创建 SensorManager 和传感器
public class MainActivity extends AppCompatActivity implements SensorEventListener { private SensorManager mSensorManager = null; private Sensor mLightSensor = null; ... protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE); mLightSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT); }
注册您正在监听的传感器
@Override protected void onResume() { super.onResume(); mSensorManager.registerListener(this, mLightSensor, SensorManager.SENSOR_DELAY_NORMAL); }
实现第 1 部分中的 SensorEventListener 方法。
@Override public void onSensorChanged(SensorEvent sensorEvent) { if( sensorEvent.sensor.getType() == Sensor.TYPE_LIGHT) { Log.d("SensorTest", ""+ sensorEvent.values[0]); } } @Override public void onAccuracyChanged(Sensor sensor, int i) { }
关于android - 如何获取光传感器值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12927533/