这个类(我的是Activity中)继承SensorEventListener接口
先获取传感器对象,再获取传感器对象的类型
1
2
3
4
|
//获取传感器管理对象 SensorManager mSensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE); // 获取传感器的类型(TYPE_ACCELEROMETER:加速度传感器) Sensor mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); |
这里我们除了可以获取加速度传感器之外,还可以获取其他类型的传感器,如:
- * Sensor.TYPE_ORIENTATION:方向传感器。
- * Sensor.TYPE_GYROSCOPE:陀螺仪传感器。
- * Sensor.TYPE_MAGNETIC_FIELD:磁场传感器。
- * Sensor.TYPE_GRAVITY:重力传感器。
- * Sensor.TYPE_LINEAR_ACCELERATION:线性加速度传感器。
- * Sensor.TYPE_AMBIENT_TEMPERATURE:温度传感器。
- * Sensor.TYPE_LIGHT:光传感器。
- * Sensor.TYPE_PRESSURE:压力传感器。
重写注册方法
1
2
3
4
5
6
|
@Override protected void onResume(){ super .onResume(); //为加速度传感器注册监听器 mSensorManager.registerListener( this , mSensor, SensorManager.SENSOR_DELAY_GAME); } |
重写onSensorChanged方法
1
2
3
4
5
6
7
8
9
10
11
12
|
@Override public void onSensorChanged(SensorEvent event){ values = event.values; StringBuilder sb = new StringBuilder(); sb.append( "X方向的加速度:" ); sb.append(values[ 0 ]); sb.append( "/nY方向的加速度:" ); sb.append(values[ 1 ]); sb.append( "/nZ方向的加速度:" ); sb.append(values[ 2 ]); mTextValue.setText(sb.toString()); //输出到Imageview上,就可看见加速度的变化 } |
重写取消监听的方法
1
2
3
4
5
6
|
@Override protected void onStop(){ super .onStop(); //取消监听 mSensorManager.unregisterListener( this ); } |
这样就能获取加速啦。
将values[]数组传给需要使用的对象就能使用了。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。如果你想了解更多相关内容请查看下面相关链接
原文链接:https://blog.csdn.net/lzq1326253299/article/details/82153948