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


    光线传感器演示1

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




    以下是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. }
    复制代码

  • 相关阅读:
    软件杯-题目和插件
    基于《河北省重大技术需求征集系统》的可用性和可修改性战术分析
    基于淘宝网的系统质量属性六大场景
    架构漫谈读后感
    06掌握需求过程阅读笔记之一
    大道至简读后感以及JAVA伪代码
    K8S学习笔记
    事务的七种传播类型、及案例
    香港身份证规则
    oracle函数
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/4515264.html
Copyright © 2020-2023  润新知