zoukankan      html  css  js  c++  java
  • ASF(传感器)

    版权声明:曾经的Blog文章合并。原创作品,谢绝转载。否则将追究法律责任。


    SensorManager类:用于创建sensor service的实例。该类提供了非常多

    用于訪问和枚举传感器,注冊和注销传感器监听器的方法。

    并且还提供了

    与传感器精度、扫描频率、校正有关的常量。

    Sensor类:提供了一些用于获取传感器技术參数的方法。如版本号、类型、

    生产商等。


    1. TYPE_ACCELEROMETER:加速传感器(硬件传感器)

    2. TYPE_AMBIENT_TEMPERATURE:温度传感器(硬件传感器)

    3. TYPE_GRAVITY:重力传感器(硬件或软件传感器)

    4. TYPE_GYROSCOPE:陀螺仪传感器(硬件传感器)

    5. TYPE_LIGHT:光线传感器(硬件传感器)

    6. TYPE_LINEAR_ACCELERATION:线性加速传感器(硬件或软件传感器)

    7. TYPE_MAGNETIC_FIELD:磁场传感器(硬件传感器)

    8. TYPE_ORIENTATION:方向传感器(软件传感器)。数据来自重力和磁场传感器

    9. TYPE_PRESSURE:压力传感器(硬件传感器)

    10.TYPE_PROXIMITY:临近传感器(硬件传感器)

    11.TYPE_RELATIVE_HUMIDITY:湿度传感器(硬件传感器)

    12.TYPE_ROTATION_VECTOR:旋转向量传感器(硬件或软件传感器)


    SensorEvent类:系统使用该类创建传感器事件对象。该对象能够提供与

    传感器事件有关的信息。传感器事件对象包含的信息有原始的传感器回传

    数据、传感器类型、数据的精度以及触发事件的时间。

    SensorEventListener接口:该接口包括两个回调方法,当传感器的回传

    值或精度发生变化时,系统会调用这两个回调方法。


    <span style="font-size:12px;">//获取传感器列表
    SensorManager mSensorManager=(SensorManager) getSystemService(Context.SENSOR_SERVICE);
            List<Sensor> mSensors=mSensorManager.getSensorList(Sensor.TYPE_ALL);
            for (Sensor sensor : mSensors) {
                mSensorTv.append(sensor.getName()+"
    ");
            }</span>

    <span style="font-size:12px;">/**
     * @author linwb
     */
    public class MainActivity extends Activity implements SensorEventListener{
        private TextView mSensorTv;
        private SensorManager mSensorManager;
        private float[] adjustArgs=new float[3];
           
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
               
            mSensorTv=(TextView) findViewById(R.id.sensorTv);
            mSensorManager=(SensorManager) getSystemService(Context.SENSOR_SERVICE);
        }
           
           
        @Override
        protected void onPause() {
            super.onPause();
            mSensorManager.unregisterListener(this);
        }
           
        @Override
        protected void onResume() {
            super.onResume();
            //第三个參数为刷新的频率
            //SensorManager.SENSOR_DELAY_FASTEST 最快
            //SensorManager.SENSOR_DELAY_GAME 游戏
            //SensorManager.SENSOR_DELAY_NORMAL 普通
            //SensorManager.SENSOR_DELAY_UI 用户界面
            mSensorManager.registerListener(this,
                    mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
                    SensorManager.SENSOR_DELAY_UI);
            mSensorManager.registerListener(this,
                    mSensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY),
                    SensorManager.SENSOR_DELAY_UI);
        }
           
        @Override
        public void onSensorChanged(SensorEvent event) {
            switch (event.sensor.getType()) {
            case Sensor.TYPE_ACCELEROMETER:
                //去除杂质 在此之前先保证重力传感器存在
    //          float x=adjustArgs[0] * 0.9f + event.values[0] *( 1 - 0.9f);
    //          float y=adjustArgs[1] * 0.9f + event.values[1] *( 1 - 0.9f);
    //          float z=adjustArgs[2] * 0.9f + event.values[2] *( 1 - 0.9f);
                   
                String reslut=(event.values[0])+"  "+(event.values[1])
                        +"  "+(event.values[2]-9.81f);
                mSensorTv.setText(reslut);
                break;
            case Sensor.TYPE_GRAVITY:
                adjustArgs[0]=event.values[0];
                adjustArgs[1]=event.values[1];
                adjustArgs[2]=event.values[2];
                break;
            default:
                break;
            }
        }
           
        @Override
        public void onAccuracyChanged(Sensor sensor, int accuracy) {
               
        }
    }</span>


    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    《图解HTTP》简单的HTTP协议
    《图解HTTP》web及网络基础
    尚硅谷--雷丰阳--ElasticSearch 7.4.2版本 -- 有道云笔记
    ElasticSearch _bulk批量插入报错
    SpringBoot利用Filter来解决跨域问题
    js中数组的常用方法
    Mysql时间加减函数
    mybatis映射文件中不能使用">""<""&"问题
    博客园样式第二版
    GO学习笔记之 map
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4853129.html
Copyright © 2011-2022 走看看