资讯详情

Android中光照传感器的用法,(检测光照强度的变化)

项目结构

0818b9ca8b590ca3270a3433284dd417.png

核心代码:

activity_main.xml

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingBottom="@dimen/activity_vertical_margin"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

tools:context=".MainActivity" >

android:id="@ id/light_level"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerInParent="true"

android:textSize="20sp"

/>

MainActivity

/**

*

* 本项目光强检测数据发生变化

*

*/

public class MainActivity extends Activity {

private SensorManager sensorManager;

private TextView lightLevel;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

lightLevel=(TextView) findViewById(R.id.light_level);

////所有传感器的管理器

sensorManager=(SensorManager) getSystemService(Context.SENSOR_SERVICE);

///在这里使用任何传感器的对象Sensor.TYPE_LIGHT得到的是光传感器

Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);

///注册监控//第三个参数传感器输出信息的更新率依次增加

//SensorManager.SENSOR_DELAY_UI

//SENSOR_DELAY_NORMAL

//SENSOR_DELAY_GAME

//SENSOR_DELAY_FASTEST

sensorManager.registerListener(listener, sensor, SensorManager.SENSOR_DELAY_NORMAL);

}

@Override

protected void onDestroy() {

super.onDestroy();

if (sensorManager!=null) {

///释放资源

sensorManager.unregisterListener(listener);

}

}

/**

* 监听传感器输入信号

*

*/

private SensorEventListener listener= new SensorEventListener() {

///当传感器检测到数值变化时,调用

@Override

public void onSensorChanged(SensorEvent event) {

float value = event.values[0];

lightLevel.setText("光强值为" value "lx");

}

//当传感器精度发生变化时,哈哈hi调用

@Override

public void onAccuracyChanged(Sensor sensor, int accuracy) {

}

};

}//class

我不明白下载我的例子。

标签: sp2801传感器接近传感器id

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

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