资讯详情

Android 中光线传感器的使用详解

首先是布局页面activity_light_sensor.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:app="http://schemas.android.com/apk/res-auto"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:orientation="vertical"     tools:context=".LightSensorActivity">      <TextView         android:id="@ id/textView"         android:layout_width="match_parent"         android:layout_height="60dp"         android:gravity="center"         android:text="光线传感器"         android:textColor="@color/black"         android:textSize="20sp" />      <EditText         android:id="@ id/editText"         android:layout_width="match_parent"         android:layout_height="wrap_content" /> </LinearLayout> 

二、相应的Activity获得光传感器的值LightSensorActivity,代码中给出了具体的注释

public class LightSensorActivity extends AppCompatActivity implements SensorEventListener { 
            private EditText editText;     ////感器管理器对象     private SensorManager sensorManager;      @Override     protected void onCreate(Bundle savedInstanceState) { 
                super.onCreate(savedInstanceState);         setContentView(R.layout.activity_light_sensor);         editText = findViewById(R.id.editText);         sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);      }      @Override     protected void onResume() { 
                super.onResume();         //第一个参数:SensorEventListener对象用ths来指定就可以了
        // 第二个参数:传感器对象 光线传感器类型的常量:TYPE_LIGHT
        // 第三个参数:传感器数据的频率 这里采用适合游戏的频率
        sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT), SensorManager.SENSOR_DELAY_GAME);
    }

    @Override
    protected void onPause() { 
       
        super.onPause();
        sensorManager.unregisterListener(this);
    }

    //当传感器的值,发生变化时,回调的方法
    @Override
    public void onSensorChanged(SensorEvent event) { 
       
        //获取传感器的值
        float[] values= event.values;
        //获取传感器类型
        int sensorType = event.sensor.getType();
        StringBuilder stringBuilder = null;
        if (sensorType==Sensor.TYPE_LIGHT){ 
       
            stringBuilder = new StringBuilder();
            stringBuilder.append("光的强度值:");
            //添加获取的传感器的值
            stringBuilder.append(values[0]);
            editText.setText(stringBuilder.toString());
        }
    }

    //当传感器的精度,发生变化时,回调的方法
    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) { 
       

    }
}

效果如图所示:

在这里插入图片描述 以上是光线传感器的简单使用,有不当的地方,可以在评论区指正~

标签: 光感传感器zp一12gandroid传感器类型3传感器if5505sp2801传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台