安卓传感器实例

获取传感器对象并注册传感器回调

		// 获取传感器的系统服务
                mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
                // 获取具体的传感器管理器-记步步增
		mStepSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR);
                // 获取具体传感器-记步总和
		mStepDetector = mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
                // 注册传感器的回调 - 获取传感器值
		mSensorManager.registerListener(mSensorEventListener, mStepSensor,
				SensorManager.SENSOR_DELAY_UI);
		mSensorManager.registerListener(mSensorEventListener, mStepDetector,
				SensorManager.SENSOR_DELAY_UI);

注册回调 第三个参数 见下 传感器回调频率 传感器类型见:

注册传感器回调

	private SensorEventListener mSensorEventListener = new SensorEventListener() {
		private int mStep;

		/**
		 * 传感器精度的改变
		 * @param sensor
		 * @param accuracy
         */
		@Override
		public void onAccuracyChanged(Sensor sensor, int accuracy) {
			Log.i(TAG, "onAccuracyChanged : accuracy " + accuracy);
		}

		/**
		 * 传感器报告新的值
		 * @param event
         */
		@Override
		public void onSensorChanged(SensorEvent event) {
			Log.i(TAG, "onSensorChanged");
			if (event.sensor.getType() == Sensor.TYPE_STEP_COUNTER) {
				mStep = (int) event.values[0];
			}
			if (event.values[0] == 1.0f) {
				mStep++;
			}
			mTextView.setText(Integer.toString(mStep));
		}
	};

传感器报告新值:包括:数据的精度、产生数据的传感器、产生数据时的时间戳、以及传感器记录的新的数据。 由于传感器过于费电推荐在界面隐藏和激活的时候进行注册和反注册

  //界面注册激活
  protected void onResume() {

    super.onResume();

    mSensorManager.registerListener(this, mLight, SensorManager.SENSOR_DELAY_NORMAL);

  }
  //界面隐藏时反注册
  @Override
  protected void onPause() {

    super.onPause();

    mSensorManager.unregisterListener(this);

  }

传感器回调频率

SENSOR_DELAY_GAME 20,000毫秒延迟 游戏推荐采用 SENSOR_DELAY_UI 60,000毫秒延迟 如果界面展示推介 SENSOR_DELAY_FASTEST 0毫秒延迟 太过费电了

Android3.0(API Level 11)以后,你也能够使用一个绝对值(以毫秒的形式)来指定延迟

相关链接

1、http://blog.csdn.net/aikongmeng/article/details/40457233 2、http://blog.sina.com.cn/s/blog_637607ec01015y8y.html

转载于:https://my.oschina.net/dingdayu/blog/759378

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值