SensorTest.java
上传用户:xmjingguan
上传日期:2009-07-06
资源大小:2054k
文件大小:3k
源码类别:

android开发

开发平台:

Java

  1. /***
  2.  * Excerpted from "Hello, Android!",
  3.  * published by The Pragmatic Bookshelf.
  4.  * Copyrights apply to this code. It may not be used to create training material, 
  5.  * courses, books, articles, and the like. Contact us if you are in doubt.
  6.  * We make no guarantees that this code is fit for any purpose. 
  7.  * Visit http://www.pragmaticprogrammer.com/titles/eband for more book information.
  8. ***/
  9. package org.example.sensortest;
  10. import java.util.List;
  11. import android.app.Activity;
  12. import android.hardware.Sensor;
  13. import android.hardware.SensorEvent;
  14. import android.hardware.SensorEventListener;
  15. import android.hardware.SensorManager;
  16. import android.os.Bundle;
  17. import android.widget.TextView;
  18. public class SensorTest extends Activity implements SensorEventListener {
  19.    
  20.    
  21.    
  22.    private SensorManager mgr;
  23.    
  24.    private TextView output;
  25.    
  26.    private List<Sensor> sensorList;
  27.    
  28.    @Override
  29.    public void onCreate(Bundle savedInstanceState) {
  30.       super.onCreate(savedInstanceState);
  31.       setContentView(R.layout.main);
  32.       
  33.       // ...
  34.       mgr = (SensorManager) getSystemService(SENSOR_SERVICE);
  35.       
  36.       output = (TextView) findViewById(R.id.output);
  37.    }
  38.    
  39.    
  40.    @Override
  41.    protected void onResume() {
  42.       super.onResume();
  43.       
  44.       // Start updates for one or more sensors
  45.       sensorList = mgr.getSensorList(Sensor.TYPE_ALL);
  46.       for (Sensor sensor : sensorList) {
  47.          mgr.registerListener(this, sensor,
  48.                  SensorManager.SENSOR_DELAY_NORMAL);
  49.       }
  50.       
  51.    }
  52.    @Override
  53.    protected void onPause() {
  54.       super.onPause();
  55.       
  56.       // Stop updates to save power while app paused
  57.       mgr.unregisterListener(this);
  58.       
  59.    }
  60.    
  61.    public void onAccuracyChanged(Sensor sensor, int accuracy) {
  62.       // TODO Auto-generated method stub
  63.    }
  64.    
  65.    public void onSensorChanged(SensorEvent event) {
  66.       
  67.       StringBuilder builder = new StringBuilder();
  68.       builder.append("--- SENSOR ---");
  69.       builder.append("nName: ");
  70.       Sensor sensor = event.sensor;
  71.       builder.append(sensor.getName());
  72.       builder.append("nType: ");
  73.       builder.append(sensor.getType());
  74.       builder.append("nVendor: ");
  75.       builder.append(sensor.getVendor());
  76.       builder.append("nVersion: ");
  77.       builder.append(sensor.getVersion());
  78.       builder.append("nMaximum Range: ");
  79.       builder.append(sensor.getMaximumRange());
  80.       builder.append("nPower: ");
  81.       builder.append(sensor.getPower());
  82.       builder.append("nResolution: ");
  83.       builder.append(sensor.getResolution());
  84.       builder.append("nn--- EVENT ---");
  85.       builder.append("nAccuracy: ");
  86.       builder.append(event.accuracy);
  87.       builder.append("nTimestamp: ");
  88.       builder.append(event.timestamp);
  89.       builder.append("nValues:n");
  90.       
  91.       for (int i = 0; i < event.values.length; i++) {
  92.          // ...
  93.          
  94.          builder.append("   [");
  95.          builder.append(i);
  96.          builder.append("] = ");
  97.          builder.append(event.values[i]);
  98.          builder.append("n");
  99.          
  100.       }
  101.       
  102.       output.setText(builder);
  103.       
  104.    }
  105.    
  106.    
  107. }