本讲内容:Android传感器编程入门,分别包括加速度传感器(accelerometer),陀螺仪(gyroscope),环境光照传感器(light),磁力传感器(magnetic field),方向传感器(orientation),压力传感器(pressure),距离传感器(proximity)和温度传感器(temperature)

本讲的学习方式还是在实战中学习,需要提醒的是模拟器中无法模拟传感器,因此你需要准备一款Android真机才能运行本讲的例子。

二、实例:手机传感器清单

我们还是先看程序后解释,

1、创建一个项目 Lesson37_HelloSensor , 主Activity名字叫 mainActivity.java

2、UI布局文件main.xml的内容如下:

        
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <linearlayoutandroid:layout_height="fill_parent"android:layout_width="fill_parent"android:orientation="vertical"xmlns:android="http://schemas.android.com/apk/res/android">
  3. <textviewandroid:layout_height="wrap_content"android:layout_width="fill_parent"android:text=""android:id="@+id/TextView01">
  4. </textview></linearlayout>

3、mainActivity.java的内容如下:

            
  1. packagebasic.android.lesson37;
  2. importjava.util.List;
  3. importandroid.app.Activity;
  4. importandroid.content.Context;
  5. importandroid.hardware.Sensor;
  6. importandroid.hardware.SensorManager;
  7. importandroid.os.Bundle;
  8. importandroid.widget.TextView;
  9. publicclassMainActivityextendsActivity{
  10. /**Calledwhentheactivityisfirstcreated.*/
  11. @Override
  12. publicvoidonCreate(BundlesavedInstanceState){
  13. super.onCreate(savedInstanceState);
  14. setContentView(R.layout.main);
  15. //准备显示信息的UI组建
  16. finalTextViewtx1=(TextView)findViewById(R.id.TextView01);
  17. //从系统服务中获得传感器管理器
  18. SensorManagersm=(SensorManager)getSystemService(Context.SENSOR_SERVICE);
  19. //从传感器管理器中获得全部的传感器列表
  20. List<sensor>allSensors=sm.getSensorList(Sensor.TYPE_ALL);
  21. //显示有多少个传感器
  22. tx1.setText("经检测该手机有"+allSensors.size()+"个传感器,他们分别是:\n");
  23. //显示每个传感器的具体信息
  24. for(Sensors:allSensors){
  25. StringtempString="\n"+"设备名称:"+s.getName()+"\n"+"设备版本:"+s.getVersion()+"\n"+"供应商:"
  26. +s.getVendor()+"\n";
  27. switch(s.getType()){
  28. caseSensor.TYPE_ACCELEROMETER:
  29. tx1.setText(tx1.getText().toString()+s.getType()+"加速度传感器accelerometer"+tempString);
  30. break;
  31. caseSensor.TYPE_GYROSCOPE:
  32. tx1.setText(tx1.getText().toString()+s.getType()+"陀螺仪传感器gyroscope"+tempString);
  33. break;
  34. caseSensor.TYPE_LIGHT:
  35. tx1.setText(tx1.getText().toString()+s.getType()+"环境光线传感器light"+tempString);
  36. break;
  37. caseSensor.TYPE_MAGNETIC_FIELD:
  38. tx1.setText(tx1.getText().toString()+s.getType()+"电磁场传感器magneticfield"+tempString);
  39. break;
  40. caseSensor.TYPE_ORIENTATION:
  41. tx1.setText(tx1.getText().toString()+s.getType()+"方向传感器orientation"+tempString);
  42. break;
  43. caseSensor.TYPE_PRESSURE:
  44. tx1.setText(tx1.getText().toString()+s.getType()+"压力传感器pressure"+tempString);
  45. break;
  46. caseSensor.TYPE_PROXIMITY:
  47. tx1.setText(tx1.getText().toString()+s.getType()+"距离传感器proximity"+tempString);
  48. break;
  49. caseSensor.TYPE_TEMPERATURE:
  50. tx1.setText(tx1.getText().toString()+s.getType()+"温度传感器temperature"+tempString);
  51. break;
  52. default:
  53. tx1.setText(tx1.getText().toString()+s.getType()+"未知传感器"+tempString);
  54. break;
  55. }
  56. }
  57. }
  58. }

更多相关文章

  1. Android Things:用户驱动-传感器
  2. 弄点好玩的之android传感器
  3. Android传感器编程实例开发——三轴数据采集
  4. Android利用传感器实现微信摇一摇功能
  5. android实现手机传感器调用
  6. 获取Android设备的方向 ,使用加速度重力传感器
  7. Android 深入解析光传感器

随机推荐

  1. ViewPager初步用法(二)
  2. ListActivity show List
  3. SurfaceView基本使用
  4. notification android原生消息通知代码详
  5. android路径获取
  6. RecyclerView添加行间距
  7. Java反射
  8. Android实现局域网组播
  9. Common Intents
  10. 接口 登录、注册、信息