zoukankan      html  css  js  c++  java
  • 开发传感器应用

    开发传感器应用的步骤如下:

    1、调用Context的getSystemService(Context.SENSOR_SERVICE)方法获取SensorManager对象,SensorManager对象代表系统的传感器管理服务。

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

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

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

    listener:监听传感器事件的监听器。该监听器需要实现SensorEventListener接口。

    sensor:传感器对象。

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

    该方法中rate可以获取传感器数据的频率,它支持如下几个频率值。

    SensorManager.SENSOR_DELAY_FASTEST,SensorManager.SENSOR_DELAY_GAME,SensorManager.SENSOR_DELAY_NORMAL,SensorManager.SENSOR_DELAY_UI


    下面程序用于开发一个加速度传感器应用,界面提供一个文本框来显示加速度的值。Activity代码如下:

    package org.helloword;
    
    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.os.Bundle;
    import android.widget.EditText;
    
    public class SensorTest extends Activity implements SensorEventListener {
    	EditText ext;
    	SensorManager sensormanager;
    
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    		// TODO Auto-generated method stub
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.sensor);
    		ext=(EditText)findViewById(R.id.ext);
    		//获取系统的传感器管理服务
    		sensormanager=(SensorManager)getSystemService(Context.SENSOR_SERVICE);	
    	}
    	
    
    	@Override
    	protected void onResume() {
    		// TODO Auto-generated method stub
    		super.onResume();
    		//为系统的加速度传感器注册监听器
    		sensormanager.registerListener(this, sensormanager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), sensormanager.SENSOR_DELAY_GAME);
    	}
    	
    	@Override
    	protected void onStop() {
    		// TODO Auto-generated method stub
    		//取消注册
    		sensormanager.unregisterListener(this);
    		super.onStop();
    	}
    
    	//当传感器的值发生改变时回调该方法
    	public void onSensorChanged(SensorEvent event) {
    		// TODO Auto-generated method stub
    		float[] values=event.values;
    		StringBuilder sb=new StringBuilder();
    		sb.append("X方向上的加速度:");
    		sb.append(values[0]);
    		sb.append("
    Y方向上的加速度:");
    		sb.append(values[1]);
    		sb.append("
    Z方向上的加速度:");
    		sb.append(values[2]);
    		ext.setText(sb.toString());
    	}
    	
    	//当传感器精度改变时回调该方法
    		public void onAccuracyChanged(Sensor sensor, int accuracy) {
    			// TODO Auto-generated method stub
    		}
    
    }
    


  • 相关阅读:
    .NET实现Excel文件的读写 未测试
    权限管理设计
    struts1中配置应用
    POJ 2139 Six Degrees of Cowvin Bacon(floyd)
    POJ 1751 Highways
    POJ 1698 Alice's Chance
    POJ 1018 Communication System
    POJ 1050 To the Max
    POJ 1002 4873279
    POJ 3084 Panic Room
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3170442.html
Copyright © 2011-2022 走看看