Android (传感器)SensorManager

SensorManager是管理传感器的类,包括传感器的创建,数据监听,以及解除监听

步骤一:获取管理类实例

    private void initRotate() {
        mSensorMg = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
    }

步骤二:注册监听,并传入传感器类型

    @Override
    protected void onResume() {
        super.onResume();
        /**
         * @param 传感器监听
         * @param 需要监听的传感器实例
         * @param 感应器的敏感度
         */
        mSensorMg.registerListener(this, mSensorMg.getDefaultSensor(Sensor.TYPE_GRAVITY), SensorManager.SENSOR_DELAY_UI);
    }

传感器的敏感度种类:

  • SENSOR_DELAY_FASTEST 最低延迟 0us,一般不推荐使用,该种模式可能造成手机电力大量消耗,会影响手机性能
  • SENSOR_DELAY_GAME 游戏延迟 20,000 us,一般绝大多数的实时性较高的游戏都使用该级别
  • SENSOR_DELAY_UI 界面延迟 60,000 us ,一般对于屏幕方向自动旋转使用,相对节省电能和逻辑处理,一般游戏开发中我们不使用。
  • SENSOR_DELAY_NORMAL 标准延迟 200,000 us,对于一般的简单小游戏可以使用,但过低的采样率可能对一些赛车类游戏有跳帧现象。

步骤三:实现管理类的方法

  • onSensorChanged接收传感器的数值
  • onAccuracyChanged接收传感器的精度
   @Override
    public void onSensorChanged(SensorEvent event) {
//业务逻辑
        if (Sensor.TYPE_GRAVITY != event.sensor.getType()) {
            return;
        }       
    }

    @Override
    public void onAccuracyChanged(Sensor sensor, int i) {

    }

步骤四:解除注册

    @Override
    protected void onPause() {
        super.onPause();
        mSensorMg.unregisterListener(this);
    }

补充

SensorManager.getSensorList可获取设备支持的传感器的数量和相关

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在Android系统中开发传感器应用十分简单,因为Android系统为传感器支持提供了强大的管理服务,同样传感器的...
    番茄And鸡蛋阅读 4,470评论 0 10
  • Android系统提供了对传感器的支持,如果手机设备的硬件提供了这些传感器,Android应用可以通过传感器来获取...
    trampcr阅读 4,413评论 3 12
  • 传感器的使用最有名的大概就是微信的摇一摇,和各种记步工具吧,所以只要运用的好,传感器也是一好的方向。可以激发开发者...
    Dddddw阅读 662评论 0 2
  • Android 传感器开发详解 传感器 传感器的分类 方向传感器 陀螺仪传感器 磁场传感器 重力传感器 线性加速度...
    CarlosLynn阅读 4,583评论 2 2
  • Android传感器定义 Android 传感器相关术语微机电传感器(MEMS)MEMS 通常制作在规格很小的硅芯...
    Jannonx阅读 4,455评论 0 1