zoukankan      html  css  js  c++  java
  • Android学习笔记--获取传感器信息

    相关资料:

    传感器的坐标与读数:http://www.cnblogs.com/mengdd/archive/2013/05/19/3086781.html

    传感器介绍及指南针原理:http://www.2cto.com/kf/201111/110233.html

    获取安卓设备的方向:http://www.cnblogs.com/bpasser/archive/2011/10/17/2214517.html

    方位传感器:http://blog.sina.com.cn/s/blog_48d4913001010zsu.html#sensors-pos-orient

    原文链接:http://www.open-open.com/lib/view/open1423812538326.html

    android 4.4 (API等级19)支持以下传感器: (注意并不是所有的手机都支持全部的传感器)

    TYPE_ACCELEROMETER
        加速度传感器,单位是m/s2,测量应用于设备X、Y、Z轴上的加速度
        传感器类型值(Sensor Type):1 (0x00000001)
         
    TYPE_AMBIENT_TEMPERATURE
        温度传感器,单位是℃
        传感器类型值(Sensor Type): 13 (0x0000000d)
     
    TYPE_GAME_ROTATION_VECTOR
        游戏动作传感器,不收电磁干扰影响
        传感器类型值(Sensor Type):15 (0x0000000f)
     
    TYPE_GEOMAGNETIC_ROTATION_VECTOR
        地磁旋转矢量传感器,提供手机的旋转矢量,当手机处于休眠状态时,仍可以记录设备的方位
        传感器类型值(Sensor Type):20 (0x00000014)
     
    TYPE_GRAVITY
        重力传感器,单位是m/s2,测量应用于设备X、Y、Z轴上的重力
        传感器类型值(Sensor Type):9 (0x00000009)
     
    TYPE_GYROSCOPE
        陀螺仪传感器,单位是rad/s,测量设备x、y、z三轴的角加速度
        传感器类型值(Sensor Type):4 (0x00000004)
     
    TYPE_GYROSCOPE_UNCALIBRATED
        未校准陀螺仪传感器,提供原始的,未校准、补偿的陀螺仪数据,用于后期处理和融合定位数据
        传感器类型值(Sensor Type):16 (0x00000010)
     
    TYPE_LIGHT
        光线感应传感器,单位lx,检测周围的光线强度
        传感器类型值(Sensor Type):5 (0x00000005)
     
    TYPE_LINEAR_ACCELERATION
        线性加速度传感器,单位是m/s2,该传感器是获取加速度传感器去除重力的影响得到的数据
        传感器类型值(Sensor Type):10 (0x0000000a)
     
    TYPE_MAGNETIC_FIELD
        磁力传感器,单位是uT(微特斯拉),测量设备周围三个物理轴(x,y,z)的磁场
        传感器类型值(Sensor Type):2 (0x00000002)
     
    TYPE_MAGNETIC_FIELD_UNCALIBRATED
        未校准磁力传感器,提供原始的,未校准的磁场数据
        传感器类型值(Sensor Type):14 (0x0000000e)
     
    TYPE_ORIENTATION
        方向传感器,测量设备围绕三个物理轴(x,y,z)的旋转角度
        传感器类型值(Sensor Type):3 (0x00000003)
     
    TYPE_PRESSURE
        压力传感器,单位是hPa(百帕斯卡),返回当前环境下的压强
        传感器类型值(Sensor Type):6 (0x00000006)
     
    TYPE_PROXIMITY
        距离传感器,单位是cm,用来测量某个对象到屏幕的距离
        传感器类型值(Sensor Type):8 (0x00000008)
     
    TYPE_RELATIVE_HUMIDITY
        湿度传感器,单位是%,来测量周围环境的相对湿度
        传感器类型值(Sensor Type):12 (0x0000000c)
     
    TYPE_ROTATION_VECTOR
        旋转矢量传感器,旋转矢量代表设备的方向
        传感器类型值(Sensor Type):11 (0x0000000b)
     
    TYPE_SIGNIFICANT_MOTION
        特殊动作触发传感器
        传感器类型值(Sensor Type):17 (0x00000011)
     
    TYPE_STEP_COUNTER
        计步传感器
        传感器类型值(Sensor Type):19 (0x00000013)
     
    TYPE_STEP_DETECTOR
        步行检测传感器,用户每走一步就触发一次事件
        传感器类型值(Sensor Type):18 (0x00000012)
     
    TYPE_TEMPERATURE
        温度传感器,目前已被TYPE_AMBIENT_TEMPERATURE替代
        传感器类型值(Sensor Type):7 (0x00000007)

    获取手机传感器信息列表

    import java.util.List;
     
    import android.os.Bundle;
    import android.annotation.SuppressLint;
    import android.app.Activity;
    import android.content.Context;
    import android.hardware.Sensor;
    import android.hardware.SensorManager;
    import android.view.Menu;
     
    public class MainActivity extends Activity {
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            getSensorList();
        }
     
        @SuppressLint("NewApi")
        private void getSensorList() {
            // 获取传感器管理器
            SensorManager sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
     
            // 获取全部传感器列表
            List<Sensor> sensors = sensorManager.getSensorList(Sensor.TYPE_ALL);
     
            // 打印每个传感器信息
            StringBuilder strLog = new StringBuilder();
            int iIndex = 1;
            for (Sensor item : sensors) {
                strLog.append(iIndex + ".");
                strLog.append(" Sensor Type - " + item.getType() + "
    ");
                strLog.append(" Sensor Name - " + item.getName() + "
    ");
                strLog.append(" Sensor Version - " + item.getVersion() + "
    ");
                strLog.append(" Sensor Vendor - " + item.getVendor() + "
    ");
                strLog.append(" Maximum Range - " + item.getMaximumRange() + "
    ");
                strLog.append(" Minimum Delay - " + item.getMinDelay() + "
    ");
                strLog.append(" Power - " + item.getPower() + "
    ");
                strLog.append(" Resolution - " + item.getResolution() + "
    ");
                strLog.append("
    ");
                iIndex++;
            }
            System.out.println(strLog.toString());
        }
     
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.activity_main, menu);
            return true;
        }
     
    }
  • 相关阅读:
    【基础算法】- 全排列
    【基础算法】- 2分查找
    区块链培训
    Static Binding (Early Binding) vs Dynamic Binding (Late Binding)
    test
    No data is deployed on the contract address!
    "throw" is deprecated in favour of "revert()", "require()" and "assert()".
    Variable is declared as a storage pointer. Use an explicit "storage" keyword to silence this warning.
    京都行
    Failed to write genesis block: database already contains an incompatible
  • 原文地址:https://www.cnblogs.com/gnivor/p/4736103.html
Copyright © 2011-2022 走看看