锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

Android中的传感器(总)

时间:2022-08-30 06:00:00 内置传感器类型android传感器类别android设备传感器相关android传感器类型3光传感器的各类vetor温度传感器

目前,传感器完成了手机的许多功能。例如,手机可以自动调整屏幕亮度(光传感器)和手机摇动功能(加速传感器)。但你知道Android中间有哪些传感器?

据Android官方显示,Android传感器可分为三类

Android平台支持三类传感器:

  • 运动传感器

    这些传感器测量沿三个轴的加速力和旋转力。此类别包括加速度计,重力传感器,陀螺仪和旋转矢量传感器。

  • 环境传感器

    这些传感器测量各种环境参数,如环境空气温度和压力、照度和湿度。这类包括气压计、光度计和温度计

  • 位置传感器

    这些传感器测量设备的物理位置。这类别包括方向传感器和磁力计。

智能手机常用传感器支持

传感器 Java中的名称 本地接口名称 数值
加速传感器 TYPE_ACCELEROMETER SENSOR_TYPE_ACCELEROMETER 1
磁场传感器 TYPE_MAGNETIC_FIELD SENSOR_TYPE_MAGNETIC_FIELD 2
方向传感器 TYPE_ORIENTATION SENSOR_TYPE_ORIENTATION 3
陀螺仪传感器 TYPE_GYROSCOPE SENSOR_TYPE_GYROSCOPE 4
光线传感器 TYPE_LIGHT SENSOR_TYPE_LIGHT 5
压力传感器 TYPE_PRESSURE SENSOR_TYPE_PRESSURE 6
温度传感器 TYPE_AMBIENT_TEMPERATURE SENSOR_TYPE_TEMPERATURE 7
距离传感器 TYPE_PROXIMITY SENSOR_TYPE_PROXIMITY 8

接下来,我们来谈谈三种传感器

一是运动传感器

传感器的可能结构因传感器类型而异:

  • 重力、线性加速度、旋转矢量、有效运动、基于硬件或软件的步进计数器和步进检测器传感器。
  • 加速度传感器和陀螺仪传感器始终以硬件为基础。

二是环境传感器

Android该平台为环境传感器提供了四个传感器,可以监控各种环境属性。您可以使用这些传感器进行监控Android设备附近的相对环境湿度、照明、环境压力和环境温度。所有四个环境传感器都是基于硬件的,只有在设备制造商将其内置到设备中后才能使用。

三是距离传感器

Android该平台为距离传感器提供了两个传感器,可以确定设备的位置:地磁场传感器和加速度计。Android该平台还提供了一个传感器,可以确定设备的面部和物体之间的传感器距离(称为接近传感器)。地磁场传感器和接近传感器是基于硬件的。大多数手机和平板电脑制造商都包含地磁场传感器。同样,手机制造商通常包含一个接近传感器,以确定何时将手机放在接近用户的脸上(例如在通话期间)。为了确定设备的方向,您可以使用设备的加速度计和地磁场传感器的读数。

介绍后开始使用

传感器框架

类/接口 介绍说明
SensorManager 您可以使用这些例子来创建传感器服务。这种方法提供了各种方法来访问和列出传感器、注册和取消传感器事件侦听器和获取方向信息。这类传感器还提供了报告传感器精度、设置数据采集速率和校准传感器的几个传感器常数。
Sensor 您可以使用此类例子来创建特定的传感器。它提供了各种方法来确定传感器的功能。
SensorEvent 该系统使用此类创建传感器事件对象,并提供传感器事件的信息。传感器事件对象包括以下信息:原始传感器数据、生成事件的传感器类型、数据的准确性和事件的时间戳。
SensorEventListener 当传感器值或传感器精度发生变化时,可以使用此接口创建两种回调方法(传感器事件)。

获取传感器管理者的对象

// 获取传感器管理者的对象 SensorManager mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

获得指定的传感器对象

////获得所有传感器 List list = sensorManager.getSensorList(Sensor.TYPE_ALL); // 获取指定的传感器 Sensor sensor = mSensorManager.getDefaultSensor(int type); /例:获得加速度传感器 Sensor sensor=sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

解除注册

//解除注册-别忘了把它放在合适的地方 sensorManager.unregisterListener(this,sensor);

获取传感器的完整代码

public class SensorActivity extends AppCompatActivity {      private SensorManager sensorManager;     private List list;     private Button mGetSensor;      @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_sensor);         mGetSensor = findViewById(R.id.get_sensor);         sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);         list = sensorManager.getSensorList(Sensor.TYPE_ALL);         mGetSensor.setOnClickListener(new View.OnClickListener() {             @Override             public void onClick(View v) {                 setSensor();             }         });     }      public void setSensor() {         Log.d("传感器:", "一共有"   list.size()   "个传感器");         for (int i = 0; i < list.size(); i  ) {             String sensortext = "对应的type"  list.get(i).getType()
                    + "  设备名称:" + list.get(i).getName()
                    + "  设备版本:" + list.get(i).getVersion()
                    + "  供应商:" + list.get(i).getVendor();
            switch (list.get(i).getType()) {
                case Sensor.TYPE_ACCELEROMETER:
                    Log.d("传感器:", "加速度传感器-->" + sensortext);
                    break;
                case Sensor.TYPE_GYROSCOPE:
                    Log.d("传感器:", "陀螺仪传感器-->" + sensortext);
                    break;
                case Sensor.TYPE_LIGHT:
                    Log.d("传感器:", "环境光线传感器-->" + sensortext);
                    break;
                case Sensor.TYPE_MAGNETIC_FIELD:
                    Log.d("传感器:", "电磁场传感器-->" + sensortext);
                    break;
                case Sensor.TYPE_ORIENTATION:
                    Log.d("传感器:", "方向传感器-->" + sensortext);
                    break;
                case Sensor.TYPE_PRESSURE:
                    Log.d("传感器:", "压力传感器-->" + sensortext);
                    break;
                case Sensor.TYPE_PROXIMITY:
                    Log.d("传感器:", "距离传感器-->" + sensortext);
                    break;
                case Sensor.TYPE_TEMPERATURE:
                    Log.d("传感器:", "温度传感器-->" + sensortext);
                    break;
                case Sensor.TYPE_GRAVITY:
                    Log.d("传感器:", "重力传感器-->" + sensortext);
                    break;
                case Sensor.TYPE_LINEAR_ACCELERATION:
                    Log.d("传感器:", "线性加速度传感器-->" + sensortext);
                    break;
                case Sensor.TYPE_ROTATION_VECTOR:
                    Log.d("传感器:", "旋转矢量传感器-->" + sensortext);
                    break;
                case Sensor.TYPE_RELATIVE_HUMIDITY:
                    Log.d("传感器:", "周围环境相对湿度传感器-->" + sensortext);
                    break;
            }
        }
    }
}

详细的各种传感器使用的方法以后再接着聊

传送门

Android中的传感器之---加速度传感器

Android中的传感器之---磁场传感器

Android中的传感器之---光线传感器

Android中的传感器之---温度传感器

 

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

相关文章