android - 如何获取光传感器值

标签 android sensors android-sensors

我有以下代码使用光传感器,但无法显示 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);
    }

}

最佳答案

你注册监听器了吗?使用传感器分为三个部分

  1. 创建 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);
    }
    
  2. 注册您正在监听的传感器

    @Override
    protected void onResume() {
    super.onResume();
    mSensorManager.registerListener(this, mLightSensor, SensorManager.SENSOR_DELAY_NORMAL);
    }
    
  3. 实现第 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/

相关文章:

android - SensorLandscape 的调用方式

android - 如何让 gradle 编译本地版本的毕加索

java - 如何退出全屏后重新显示状态栏+导航栏出现后不会消失

ios - 有什么方法可以检索 iPhone 的显示亮度和光传感器值?

ios - 如何在 ARKit 中获取一些有用的传感器数据?

Android - 获取接近传感器的最小值和最大值

android - 如何识别安卓手机翻转180度

android - OpenGL ES 多个对象未被渲染

android - Xcode 和 Eclipse 之间的 GitHub XCRUN 错误

java - 单独线程中的加速度计传感器