Android笔记----Android传感器开发

本文介绍了Android传感器开发,包括常用传感器如加速度传感器、方向传感器、磁场传感器等,并提供了SensorSimulator的下载安装及使用方法,讲解如何在Android模拟器上进行传感器应用的开发和调试。此外,还给出了传感器应用实例,如指南针和水平仪的实现。
摘要由CSDN通过智能技术生成

Android的传感器开发

Android的常用传感器

传感器应用案例

 

 

 

 

Android的传感器开发

1.1 开发传感器应用

开发传感器的步骤如下:

       调用ContextgetSystemService(Context.SENSOR_SERVICE)方法获取SensorManager对象。

       调用SensorManagergetDefaultSensor(int type)方法来获取指定类型的传感器。

       一般在ActivityonResume()方法中调用SensorManagerregisterListener()为指定传感器注册监听器即可。程序可以通过实现监听器即可获取传感器传回来的数据。

SersorManager提供的注册传感器的方法为registerListener(SensorListener listener, Sensor sensor, int rate)该方法中三个参数说明如下:

       listener:监听传感器事件的监听器

       sensor:传感器对象

       rate:指定获取传感器数据的频率

rate可以获取传感器数据的频率,支持如下几个频率值:

       SENSOR_DELAY_FASTEST:最快,延迟最小。

       SENSOR_DELAY_GAME:适合游戏的频率。

       SENSOR_DELAY_NORMAL:正常频率

       SENSOR_DELAY_UI:适合普通用户界面的频率。

例:加速度传感器:

AccelerometerTest.java

public class AccelerometerTest extends Activity
	implements SensorEventListener
{
	// 定义系统的Sensor管理器
	SensorManager sensorManager;
	EditText etTxt1;

	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		// 获取程序界面上的文本框组件
		etTxt1 = (EditText) findViewById(R.id.txt1);
		// 获取系统的传感器管理服务
		sensorManager = (SensorManager) getSystemService(
			Context.SENSOR_SERVICE);
	}

	@Override
	protected void onResume()
	{
		super.onResume();
		// 为系统的加速度传感器注册监听器
		sensorManager.registerListener(this,
			sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
			SensorManager.SENSOR_DELAY_GAME);
	}

	@Override
	protected void onStop()
	{
		// 取消注册
		sensorManager.unregisterListener(this);
		super.onStop();
	}

	// 以下是实现SensorEventListener接口必须实现的方法
	// 当传感器的值发生改变时回调该方法
	@Override
	public void onSensorChanged(SensorEvent event)
	{
		float[] values = event.values;
		StringBuilder sb = new StringBuilder();
		sb.append("X方向上的加速度:");
		sb.append(values[0]);
		sb.append("\nY方向上的加速度:");
		sb.append(values[1]);
		sb.append("\nZ方向上的加速度:");
		sb.append(values[2]);
		etTxt1.setText(sb.toString());
	}

	// 当传感器精度改变时回调该方法。
	@Override
	public void onAccuracyChanged(Sensor sensor, int accuracy)
	{
	}
}

 

需要指出的是,传感器的坐标系统与屏幕坐标系统不同,传感器坐标系统的X轴沿屏幕向右;Y轴则沿屏幕向上,Z轴在垂直屏幕向上。


当拿着手机横向左右移动时,可能产生X轴上的加速度;拿着手机前后移动时,可能产生Y轴上的加速度;当拿着手机竖向上下移动时,可能产生Z轴上的加速度。

 

1.2 下载和安装SensorSimulator

       SensorSimulator是传感器的模拟工具,安装这个模拟工具之后,开发者就可以在Android模拟器上开发、调试传感器应用。

       SensorSimulator,由PC端程序和手机端程序组成,当两端的程序运行并建立连接之后,用户可以通过PC端的程序来改变手机的传感数据。

下载和安装SensorSimulator步骤如下:

       登录到http://code.google.com/p/openintents/wiki/SensorSimulator站点或FTP上,下载SensorSimulator的最新版本。

       下载SensorSimulator工具后,下载完成后得到一个sensorsimulator-2.0-rc1.zip压缩包。解压该文件,得到如下文件结构。

       安装SensorSimulator的手机端程序。通过命令窗口进入到上面文件的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值