Android Manager之SensorManager(传感器)—基础知识

1.简介

说到传感器,相信大家都不会陌生吧,比如微信的摇一摇就用到了加速度传感器。

传感器的定义:一种物理设备或者生物器官,能够探测、感受外界的信号,物理条件(如光,热,适度)或化学组成(如烟雾),并将探知的信息传递给其他的设备或者器官。 

传感器的种类:可以从不同的角度对传感器进行划分,转换原理(传感器工作的基本物理或化学 效应)。

用途:输出信号以及制作材料和工艺等。一般是按工作原来来分:物理传感器与化学传感器 两类。手机上搭载的基本都是物理传感器。




2.手机上搭载的常见传感器

2.1.方向传感器(Orientation sensor)


2.2.加速感应器(Accelerometer sensor)


2.3.陀螺仪传感器(Gyroscope sensor)


2.4.磁场传感器(Magnetic field sensor)


2.5.距离传感器(Proximity sensor)


2.6.光线传感器(Light sensor)


2.7.气压传感器(Pressure sensor)


2.8.温度传感器(Temperature sensor)


2.9.重力感应器(Gravity sensor,Android 2.3引入)


2.10.线性加速感应器(Linear acceleration sensor ,Android 2.3引入)


2.11.旋转矢量传感器(Rotation vector sensor,Android 2.3引入)


2.12.相对湿度传感器(Relative humidity sensor,Android 4.0引入)


2.13.近场通信(NFC)传感器(Android 2.3引入),NFC和其他不一样,具有读写功能。



3.获取当前设备传感器列表

3.1.代码

public class SensorManagerActivity extends AppCompatActivity {


    private SensorManager sensorManager;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sensormanager);


        //获取SensorManager实例
        sensorManager= (SensorManager) getSystemService(Context.SENSOR_SERVICE);
        //获取当前设备支持的传感器列表
        List<Sensor> allSensors = sensorManager.getSensorList(Sensor.TYPE_ALL);


        StringBuilder sb = new StringBuilder();
        sb.append("当前设备支持传感器数:" + allSensors.size() + "   分别是:\n\n");
        for(Sensor s:allSensors){
            switch (s.getType()){
                case Sensor.TYPE_ACCELEROMETER:
                    sb.append("加速度传感器(Accelerometer sensor)" + "\n");
                    break;
                case Sensor.TYPE_GYROSCOPE:
                    sb.append("陀螺仪传感器(Gyroscope sensor)" + "\n");
                    break;
                case Sensor.TYPE_LIGHT:
                    sb.append("光线传感器(Light sensor)" + "\n");
                    break;
                case Sensor.TYPE_MAGNETIC_FIELD:
                    sb.append("磁场传感器(Magnetic field sensor)" + "\n");
                    break;
                case Sensor.TYPE_ORIENTATION:
                    sb.append("方向传感器(Orientation sensor)" + "\n");
                    break;
                case Sensor.TYPE_PRESSURE:
                    sb.append("气压传感器(Pressure sensor)" + "\n");
                    break;
                case Sensor.TYPE_PROXIMITY:
                    sb.append("距离传感器(Proximity sensor)" + "\n");
                    break;
                case Sensor.TYPE_TEMPERATURE:
                    sb.append("温度传感器(Temperature sensor)" + "\n");
                    break;
                default:
                    sb.append("其他传感器" + "\n");
                    break;
            }
            sb.append("设备名称:" + s.getName() + "\n 设备版本:" + s.getVersion() + "\n 供应商:"
                    + s.getVendor() + "\n\n");
        }
        Log.d("TAG","sb.toString()----:"+sb.toString());


    }


}


3.2.效果




附1:Sensor官方链接

http://androiddoc.qiniudn.com/reference/android/hardware/Sensor.html


附2:


猜你喜欢

转载自blog.csdn.net/weixin_37730482/article/details/80570268