900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 手机中的传感器之光线传感器(Android实现)

手机中的传感器之光线传感器(Android实现)

时间:2021-07-28 00:04:23

相关推荐

手机中的传感器之光线传感器(Android实现)

手机中的光线传感器()实现监听

手机中的传感器:

手机中的大多数传感器的监听实现相差无几,大多数实现方式如下: 1.定义传感器管理器,用于获取传感器类型和注册和取消注册监听器。 2.定义传感器,用于获取传感器管理器获取的传感器。 3.(注意!!)因为一系列安全问题,最好设置一个按钮取消传感器监听器的注册。

具体布局:

1.开始、关闭监听为两个按钮 2.即将显示光照强度部分为TextView显示文本

实现后的界面:

具体代码实现:

////手机光线传感器监听的实现Android版//CreatedbyScarborough_Coralon/3/3.//Copyright©Scarborough_Coral.Allrightsreserved.//package com.coral.lightsenor;//需要导入的包import android.hardware.Sensor;import android.hardware.SensorEvent;import android.hardware.SensorEventListener;import android.hardware.SensorManager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;public class MainActivity extends AppCompatActivity {private TextView showLightPower;//用于显示光照强度的文本视图private Button start;//按钮,点击开始监听传感器private Button stop;//按钮,点击停止监听传感器private SensorManager sensorManager;//传感器管理器,用于获取传感器服务,和选择传感器类型private Sensor sensor;//传感器对象,储存光线传感器的数据private SensorEventListener sensorEventListener;//传感器事件监听器,用于传感器事件的监听/*** 函数功能:入口函数* @param savedInstanceState*/@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//获取并设置app布局文件setContentView(R.layout.activity_main);//初始化控件InitWidgets();//初始化传感器相关,包含传感器管理器和传感器的设定InitSensors();//设置按钮点击监听器和传感器事件监听器setListener();}/*** 函数功能:初始化传感器相关,包括传感器管理器和传感器类型*/private void InitSensors() {sensorManager= (SensorManager) getSystemService(SENSOR_SERVICE);//初始化传感器管理器sensor=sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);//给传感器初始化类型}/*** 函数功能:通过匿名内部类的方式实现按钮和传感器监听器接口,实现按钮和传感器的监听*/private void setListener() {sensorEventListener=new SensorEventListener() {/*** 函数功能:重写传感器参数改变时实现的方法* @param event*/@Overridepublic void onSensorChanged(SensorEvent event) {String showInfo="";//用于存储传感器的光强信息showInfo="光照强度:"+event.values[0]+"勒克斯";showLightPower.setText(showInfo);//设置TextView的显示光线传感器光强信息}/*** 当传感器参数精度改变时,可以通过本方法实现* @param sensor* @param accuracy*/@Overridepublic void onAccuracyChanged(Sensor sensor, int accuracy) {}};//设置开始监听按钮被点击时实现注册传感器事件监听器start.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {sensorManager.registerListener(sensorEventListener,sensor,0);//注册传感器}});//设置关闭监听按钮被点击时实现取消注册传感器事件监听器stop.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {sensorManager.unregisterListener(sensorEventListener);}});}/*** 函数功能:初始化控件*/private void InitWidgets() {//获取textview和button的实例showLightPower= (TextView) findViewById(R.id.showLightPower);start= (Button) findViewById(R.id.startListen);stop= (Button) findViewById(R.id.stopListen);}}

这次博客文章就到这里了,请多多支持……

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。