在Android中使用加速度传感器可以帮助我们识别手机的姿态及运动状态。
使用加速度传感器与其他传感器的方法大致相同,通过调用系统API就可以实现。分为以下几步:
1.获取SensorManager
2.使用SensorManager获取加速度传感器
3.创建自定义的传感器监听函数,并注册
4.相对应的,在合适位置实现注销监听器的调用
简单的代码如下:
public class MainActivity extends Activity {
private static final String TAG = "SensorTest";
private SensorManager mSensorManager;
private Sensor mAccelerometer;
private TestSensorListener mSensorListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViews();
// 初始化传感器
mSensorListener = new TestSensorListener();
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
}
@Override
protected void onResume() {
super.onResume();
// 注册传感器监听函数
mSensorManager.registerListener(mSensorListener, mAccelerometer, SensorManager.SENSOR_DELAY_UI);
}
@Override
protected void onPause() {
super.onPause();
// 注销监听函数
mSensorManager.unregisterListener(mSensorListener);
}
private void initViews() {
mSensorInfoA = (TextView) findViewById(R.id.sensor_info_a);
}
class TestSensorListener implements SensorEventListener {
@Override
public void onSensorChanged(SensorEvent event) {
// 读取加速度传感器数值,values数组0,1,2分别对应x,y,z轴的加速度
Log.i(TAG, "onSensorChanged: " + event.values[0] + ", " + event.values[1] + ", " + event.values[2]);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy)