Android应用软件开发

194课时
1.7K学过
8分

课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
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();
    }
}