android学习之传感器的基本使用

本文介绍了一个简单的Android应用程序,该程序利用方向传感器实现设备方向变化的监听。通过注册SensorManager并监听方向传感器,开发者可以获取设备的实时方向数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import java.util.List;

import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;

public class Activity01 extends Activity implements SensorEventListener
{
	private boolean			mRegisteredSensor;
	//定义SensorManager
	private SensorManager		mSensorManager;
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		mRegisteredSensor = false;
		//取得SensorManager实例
		mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
	}
	@Override
	protected void onResume()
	{
		super.onResume();

		//接受SensorManager的一个列表(Listener)
		//这里我们指定类型为TYPE_ORIENTATION(方向感应器)
		List<Sensor> sensors = mSensorManager.getSensorList(Sensor.TYPE_ORIENTATION);

		if (sensors.size() > 0)
		{
			Sensor sensor = sensors.get(0);
			//注册SensorManager
			//this->接收sensor的实例
			//接收传感器类型的列表
			//接受的频率
			mRegisteredSensor = mSensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_FASTEST);
		}
	}
	@Override
	protected void onPause()
	{
		if (mRegisteredSensor)
		{
			//如果调用了registerListener
			//这里我们需要unregisterListener来卸载\取消注册
			mSensorManager.unregisterListener(this);
			mRegisteredSensor = false;
		}
		super.onPause();
	}
	//当进准度发生改变时
	//sensor->传感器
	//accuracy->精准度
	@Override
	public void onAccuracyChanged(Sensor sensor, int accuracy)
	{
		
	}
	// 当传感器在被改变时触发
	@Override
	public void onSensorChanged(SensorEvent event)
	{
		// 接受方向感应器的类型
		if (event.sensor.getType() == Sensor.TYPE_ORIENTATION)
		{
			//这里我们可以得到数据,然后根据需要来处理
			//由于模拟器上面无法测试效果,因此我们暂时不处理数据
			float x = event.values[SensorManager.DATA_X];
			float y = event.values[SensorManager.DATA_Y];
			float z = event.values[SensorManager.DATA_Z];
		}
	}
}

 来源:android应用开发揭秘

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值