Android三类传感器-动作传感器-位置传感器-环境传感器

原创 2015年11月20日 16:25:28

Android的传感器主要分为三类:动作传感器,位置传感器和环境传感器。


动作传感器
Android的动作传感器主要在XYZ轴上测量加速度和旋转角度,主要有以下几种:

  1. 加速传感器(Accelerameter)
  2. 陀螺仪传感器(Gyroscope)
  3. 重力传感器(Gravity)
  4. 旋转向量传感器(Rotational vetor)

在获取某传感器参数之前,我们需要查看ANDROID设备是否支持该传感器,下面首先演示如何获取一个设备所支持的所有传感器。

我们需要一个SensorManager类来获取传感器的相关信息,并把它显示在TextView当中。

SensorManager sensorManager= (SensorManager) getContext().getSystemService(Context.SENSOR_SERVICE);
            List<Sensor> sensors=sensorManager.getSensorList(Sensor.TYPE_ALL);
            for (Sensor sensor:sensors) {
                tv_sensors.append(sensor.getName() + "\n");
            }

动作传感器–以加速度传感器为例
要监听传感器的回传数据,需要实现SensorEventListener接口,并重写方法onSensorChanged(),onAccuracyChanged(),和重写Fragment类中的onResume()和onPause()。
首先在onResume()中注册要监听的传感器类型(以加速度传感器为例)

        @Override
        public void onResume() {
            super.onResume();
            sensorManager.registerListener(this,
                    sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
                    SensorManager.SENSOR_DELAY_FASTEST);
        }

SENSOR_DELAY_FASTEST表示监听数据的速度很快。

在onPause()销毁该传感器

 @Override
        public void onPause() {
            super.onPause();
            sensorManager.unregisterListener(this);
        }

在onSensorChanged()中写捕捉到传感器后的动作

 @Override
        public void onSensorChanged(SensorEvent event) {
            switch (event.sensor.getType()) {
                case Sensor.TYPE_ACCELEROMETER:
                    String string_accelerameter = "加速度X:" + event.values[0] + "/|Y:" + event.values[1] + "/|Z:" + event.values[2];
                    tv_accelerameter.setText(string_accelerameter);
                    break;
                case Sensor.TYPE_ROTATION_VECTOR:
                    String string_TYPE_ROTATION_VECTOR = "X:" + event.values[0] + "/|Y:" + event.values[1] + "/|Z:" + event.values[2];
                    Log.v("TYPE_ROTATION_VECTOR", string_TYPE_ROTATION_VECTOR);
                    break;
            }
        }

位置传感器
位置传感器常用的有3个:
方向传感器TYPE_ORIENTATION,
磁场传感器TYPE_MAGNETOMETER
邻近传感器TYPE_PROXIMITY。
其中邻近传感器使用最多,即在接听电话时判断人脸与屏幕的距离从而判断是否熄灭屏幕以防止误触。
方向传感器,磁场传感器都有3个返回值(event.value[0],event.value[1],event.value[2]),而邻近传感器只有一个返回值(event.value[0])。
设置位置传感器的方法与动作传感器相同,即在onResume()方法内注册传感器,并在onSensorChanged()监听返回值。

在方向传感器中,event.value[0]表示绕着Z轴(上下)旋转的角度,如果Y轴正对北方, 返回值为0;如果Y轴正对东方, 返回值为90,如果Y轴正对南方, 返回值为180,如果Y轴正对西方, 返回值为270。
event.value[1]表示绕着Y轴(前后)旋转的角度。
event.value[2]表示绕着X轴(左右)旋转的角度。


环境传感器
ANDROID APIs中提供了4个环境传感器,分别为
温度TYPE_AMBIENT_TEMPERATURE(℃),
压力TYPE_PRESSURE(hPa),
光线TYPE_LIGHT(lx),
湿度TYPE_RELATIVE_HUMIDITY(RH).
手机最常用的是光线,这些传感器都只有一个返回值。

android动作传感器

android传感器 view:

Android中加速和位置传感器的使用

前言如今灯下闲读红袖添香,半生浮名只是虚妄。简介不知道大家有没有注意过,在我们接打电话的时候,当我们把手机放在耳边的时候,屏幕会自动熄灭,而当我们拿下来的时候,屏幕又亮了,这其实是Android中传感...

android位置传感器

Android平台提供了两个传感器用于确定设备的位置,这两个传感器是磁场传感器和方向传感器。Android平台还提供了测量设备正面到某一个邻近物体距离的传感器(邻近传感器)。磁场传感器和邻近传感器是基...

Android开发者指南-环境传感器-Environment Sensors[原创译文]

传感器: Environment Sensors 英文原文:http://developer.android.com/guide/topics/sensors/sensors_enviro...

Android 环境传感器初探

Android 中的环境传感器有如下几种(来自于 Sensor): TYPE_LIGHT 光传感器 TYPE_PROXIMITY 接近传感器 TYPE_PRESSURE 气压传感器 TYPE_RELA...

深入探讨 Android 传感器随处监控您的环境

深入探讨 Android 传感器   Frank Ableson 是一名企业家,也是一名软件开发人员,他居住在新泽西北部,专攻移动和嵌入式应用程序软件。他目前正在为 Manning Pub...

android环境传感器

环境传感器   Android平台提供了4个传感器,用于检测不同的外部环境。我们可以使用这些传感器检测周围。例如,可以检测周围空气的湿度、光线、空气的压强和温度。这4个传感器都是基于硬件的传感器。除了...

Android传感器的环境监控

Android 传感器可以随处监控环境     如:方向、加速表、光线、磁场、临近性、温度等     android.hardware.SensorManager 包含几个常量,这表示 Andro...

位置传感器的组成及使用方法

在上一篇博客(http://blog.csdn.net/redoq/article/details/52515123)中,我们对传感器已经有所了解,这篇我们将重点讲位置传感器的组成及使用方法。Andr...
  • redoq
  • redoq
  • 2016年09月14日 16:21
  • 401
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android三类传感器-动作传感器-位置传感器-环境传感器
举报原因:
原因补充:

(最多只允许输入30个字)