传感器-指南针测试

作者:流沙 分类: Android 发布于:2016-9-11 18:35 ė449次浏览 60条评论
package org.itheima62.sensor;

import java.util.List;

import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.view.Menu;

public class MainActivity extends Activity {

	private SensorManager manager;
	private Sensor sensor;
	private SensorEventListener listener = new SensorEventListener() {

		@Override
		public void onSensorChanged(SensorEvent event) {
			// 1. 获取 传感器的数据
			float[] values = event.values;

			// value
			// values[0]: Azimuth, angle between the magnetic north direction
			// and the y-axis, around the z-axis (0 to 359). 0=North, 90=East,
			// 180=South, 270=West

			float angle = values[0];
			if (angle == 0) {
				System.out.println("北");
			} else if (angle == 90) {
				System.out.println("东");
			} else if (angle == 180) {
				System.out.println("南");
			} else if (angle == 270) {
				System.out.println("西");
			} else if (angle > 0 && angle < 90) {
				System.out.println("东北");
			} else if (angle > 90 && angle < 180) {
				System.out.println("东南");
			} else if (angle > 180 && angle < 270) {
				System.out.println("西南");
			} else if (angle > 270 && angle < 360) {
				System.out.println("西北");
			}

		}

		@Override
		public void onAccuracyChanged(Sensor sensor, int accuracy) {
			// 1. 传感器的精确度发送改变时

		}
	};

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		// 传感器的管理者

		manager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

		// List<Sensor> list = manager.getSensorList(Sensor.TYPE_ALL);
		// for (Sensor sensor : list) {
		// System.out.println(sensor.getName());
		// }

		// 获得光的传感器

		sensor = manager.getDefaultSensor(Sensor.TYPE_ORIENTATION);

	}

	@Override
	protected void onResume() {
		super.onResume();

		// 1:监听传感器
		// 2:哪个传感器
		// 3:采样频率
		manager.registerListener(listener, sensor,
				SensorManager.SENSOR_DELAY_NORMAL);
	}

	@Override
	protected void onPause() {
		super.onPause();

		manager.unregisterListener(listener);
	}
}

本文出自 流沙,转载时请注明出处及相应链接。

0

发表评论

电子邮件地址不会被公开。必填项已用*标注


Ɣ回顶部