Android 深入解析光传感器(二)

摘要:
光传感器演示1讲述了很多理论,因此下面的示例将展示光传感器的使用。为什么我要充分展示光感的使用?我的例子很简单。我只编写了使用光感所需的代码,然后使用了几个textView向用户界面显示光变化值。它允许用户随时看到光强度的变化。以下是活动的代码:java代码:publicclassLightDemoActivityextendsActivityimplem
光线传感器演示1

       讲了一大堆的理论,那么以下的样例就来展示一下光线感应器的使用.为什么充分展现光感的用法,我这个样例写的很easy,仅仅写了使用光感必须的代码,然后用了几个textView将光线变化的值展现到用户界面。让使用者能够随时的看到光度的变化。



Android 深入解析光传感器(二)第1张


以下是Activity的代码:


java代码:

  1. public class LightDemoActivity extends Activity implements SensorEventListener{
  2. /** Called when the activity is first created. */
  3. SensorManager sensorManager = null;//传感器管理器引用
  4. Sensor lightSensor = null;//光线传感器引用

  5. //各个文本的引用
  6. TextView accuracy_view= null;
  7. TextView value_0 = null;
  8. TextView value_1 = null;
  9. TextView value_2 = null;

  10. @Override
  11. public void onCreate(Bundle savedInstanceState) {
  12. super.onCreate(savedInstanceState);
  13. setContentView(R.layout.main);

  14. //获得传感器管理器实例
  15. sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
  16. //获得光线传感器实例
  17. lightSensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
  18. //获得各个TextView
  19. accuracy_view = (TextView)findViewById(R.id.accuracy);
  20. value_0 = (TextView)findViewById(R.id.value_0);
  21. value_1 = (TextView)findViewById(R.id.value_1);
  22. value_2 = (TextView)findViewById(R.id.value_2);
  23. }

  24. @Override
  25. protected void onPause() {
  26. // TODO Auto-generated method stub
  27. super.onPause();
  28. //注销
  29. sensorManager.unregisterListener(this, lightSensor);
  30. }

  31. @Override
  32. protected void onResume() {
  33. // TODO Auto-generated method stub
  34. super.onResume();
  35. //为传感器管理器注冊监听
  36. sensorManager.registerListener(this,lightSensor, SensorManager.SENSOR_DELAY_NORMAL);
  37. }

  38. @Override
  39. public void onAccuracyChanged(Sensor sensor, int accuracy) {
  40. // TODO Auto-generated method stub
  41. if(sensor.getType() == Sensor.TYPE_LIGHT){
  42. //设置将accuracy的值显示到屏幕上
  43. accuracy_view.setText("accuracy:"+accuracy);
  44. }

  45. }

  46. @Override
  47. public void onSensorChanged(SensorEvent event) {
  48. // TODO Auto-generated method stub
  49. if(event.sensor.getType() == Sensor.TYPE_LIGHT){

  50. //将values的值显示到屏幕上
  51. float[] values = event.values;
  52. value_0.setText("value[0]:"+values[0]);
  53. value_1.setText("value[1]:"+values[1]);
  54. value_2.setText("value[2]:"+values[2]);
  55. }
  56. }

  57. }
复制代码

我们来看看解说的代码:

java代码:
  1. 以下解说代码:
  2. //获得传感器管理器实例
  3. sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
  4. //获得光线传感器实例
  5. lightSensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);

  6. 这段代码的作用是获得感应器管理器引用,并获得光感感应器应用。
  7. protected void onResume() {
  8. // TODO Auto-generated method stub
  9. super.onResume();
  10. //为传感器管理器注冊监听
  11. sensorManager
  12. .registerListener(this,lightSensor, SensorManager.SENSOR_DELAY_NORMAL);
  13. }
  14. 这段代码的作用在resume的时候又一次注冊监听,开启光感
  15. protected void onPause() {
  16. // TODO Auto-generated method stub
  17. super.onPause();
  18. //注销
  19. sensorManager.unregisterListener(this, lightSensor);
  20. }
  21. 这段代码的作用是在暂停时注销监听,关闭光感。由于感应器耗电,所以在不用的时候应该关闭他
  22. if(event.sensor.getType() == Sensor.TYPE_LIGHT)
  23. {
  24. //将values的值显示到屏幕上
  25. float[] values = event.values;
  26. value_0.setText("value[0]:"+values[0]);
  27. value_1.setText("value[1]:"+values[1]);
  28. value_2.setText("value[2]:"+values[2]);
  29. }

  30. }
复制代码

免责声明:文章转载自《Android 深入解析光传感器(二)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB)Crypto++ AES 加密解密流程下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

OSSEC初探

OSSEC的初始概念:OSSEC是一个开源的基于主机的入侵检测系统,可以执行日志分析、完整性检查、windows注册表监视、隐藏检测和实时报警。简单地说,OSSEC在C/S模式下工作。代理监视和收集信息并将其报告给服务器。服务器分析并预处理信息,并通过电子邮件将系统更改发送给管理员。...

Nginx设置KeepAlive为close

以腾讯首页为例,就有很多是请求是在客户端发生请求后,服务器响应完就立即关闭了。nginx不像apache,直接有指令keep-aliveoff/on;它使用的是keepalive_timeout[time],默认的时长为75,可以在http、server、location使用此指令。...

MySQL锁详解

MySQL锁详解update语句执行流程MySQL的锁介绍按照锁的粒度来说,MySQL主要包含三种类型(级别)的锁定机制:全局锁:锁的是整个database。由MySQL的SQLlayer层实现的表级锁:锁的是某个table。由MySQL的SQLlayer层实现的行级锁:锁的是某行数据,也可能锁定行之间的间隙。...

移动通信网络中的 GTP 协议

在EPSUP中使用GTP的优点之一是GTP具有固有的可识别隧道机制和GTP可以为UE提供的移动性。注意:GTPv2-U协议不存在。GTP-C协议GTP-C是GTP的控制平面,使用UDP端口2123。在EPS中,GTPv2-C协议负责创建、维护和删除S1、S5/S8和其他接口上的GTP-U隧道。它是一种基于IP的隧道协议,允许在GTP UProtocolEnt...

vant上传文件到后端

Html代码<Ts代码文件列表=[]/image/[a-zA-z]+/。test(file.file.type)){this.$toast(“请上传图片”);returnfalse;config).then(res=>})。捕获(()=>拒绝)=>ts=“+newDate().getTime()).然后...

springMVC使用map接收入参 + mybatis使用map 传入查询参数

测试示例:控制器层使用映射来接收请求参数。从Debug中可以看到,请求中的参数值都是字符串形式。如果接收参数的映射直接传输到服务,mybatis将在接收参数时报告错误。因此,您需要首先对请求中的参数1packageorg.slsale进行预处理。测验23导入java.util。日期4导入java.util。HashMap;5导入java.ut...