android设备上实现摇一摇

第一步:

定义传感器管理服务和传感器时间监听器

	MySensorEventListener mySensorEventListener;//传感器事件监听器
	private SensorManager sensorManager;// 传感器管理服务

第二步:

获取传感器管理服务

sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);// 获取传感器管理服务
实现监听器,一个安装了SensorEventListener接口的类

	class MySensorEventListener implements SensorEventListener {

		@Override
		public void onAccuracyChanged(Sensor arg0, int arg1) {
			// TODO Auto-generated method stub
			// 当传感器精度改变时回调该方法
		}

		@Override
		public void onSensorChanged(SensorEvent event) {
			// TODO Auto-generated method stub
			int sensorType = event.sensor.getType();
			float[] values = event.values; // values[0]:X轴,values[1]:Y轴,values[2]:Z轴
			//是重力加速度事件且任意一轴上的加速度值大于设定值item
			if (sensorType == Sensor.TYPE_ACCELEROMETER) {
				if ((Math.abs(values[0]) > item || Math.abs(values[1]) > item || Math
						.abs(values[2]) > item)) {
					tv1.setText( String.format(str, values[0], values[1], values[2]));
					//vibrator.vibrate(300);// 震动
				}
			}
		}

	}
第三步:

重载Activity中的onResume()方法注册监听器

	@Override
	protected void onResume() {
		// TODO Auto-generated method stub
		super.onResume();
		// 注册
		sensorManager.registerListener( mySensorEventListener,
				sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL);
	}

重载Activity中的onPause()方法取消注册监听器

	@Override
	protected void onPause() {
		// TODO Auto-generated method stub
		//取消注册
		sensorManager.unregisterListener( mySensorEventListener );
		super.onPause();
	}
demo下载地址: http://download.csdn.net/detail/duduhali/9104591

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值