2分钟
5.1实施步骤
实施步骤
步骤1:新建一个Module,命名为Ex5_1。布局文件仅有一个TextView,比较简单,清单略。
步骤2:修改MainActivity类,清单如下。
表5-1-1 Ex5_1 MainActivity.java清单
package com.example.book.ex5_1;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private SensorManager manager;
private Sensor mAccelerometer;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
manager = (SensorManager) getSystemService(SENSOR_SERVICE);
mAccelerometer = manager.getDefaultSensor(
Sensor.TYPE_ACCELEROMETER);
textView = (TextView) findViewById(R.id.textView);
}
private SensorEventListener listener = new SensorEventListener() {
//传感器的值发生变化,如温度传感器检测到温度发生
//变化,调用此方法。
@Override
public void onSensorChanged(SensorEvent event) {
String show = "";
show = show + "x轴方向:" +
event.values[SensorManager.DATA_X];
show = show + "\ny轴方向:" +
event.values[SensorManager.DATA_Y];
show = show + "\nz轴方向:" +
event.values[SensorManager.DATA_Z];
textView.setText(show);
}
//传感器精度发生变化时调用。传感器精度除非出现损坏或
// 者其他特殊情况 ,很少会发生测量精度变化,
// 所以该方法使用较少。
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
};
@Override
protected void onResume() {
super.onResume();
manager.registerListener(listener, mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL);
}
//回收资源。
@Override
protected void onStop(){
manager.unregisterListener(listener);
super.onStop();
}
}
学员评价