OSDN Git Service

Updated Sensor Samples to newest API
authorChristian Mehlmauer <FireFart@gmail.com>
Tue, 18 May 2010 21:40:33 +0000 (23:40 +0200)
committerChristian Mehlmauer <FireFart@gmail.com>
Wed, 19 May 2010 16:27:34 +0000 (18:27 +0200)
Change-Id: I88c0ce08232fed34aa99c97385155220e7d9abff

samples/ApiDemos/src/com/example/android/apis/graphics/Compass.java
samples/ApiDemos/src/com/example/android/apis/graphics/SensorTest.java
samples/ApiDemos/src/com/example/android/apis/os/Sensors.java

index d2a9907..d3b0981 100644 (file)
 
 package com.example.android.apis.graphics;
 
-import android.app.Activity;
 import android.content.Context;
 import android.graphics.*;
-import android.hardware.SensorListener;
+import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
 import android.hardware.SensorManager;
 import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.os.SystemClock;
 import android.util.Config;
 import android.util.Log;
 import android.view.View;
@@ -33,23 +31,22 @@ public class Compass extends GraphicsActivity {
 
     private static final String TAG = "Compass";
 
-       private SensorManager mSensorManager;
+    private SensorManager mSensorManager;
+    private Sensor mSensor;
     private SampleView mView;
     private float[] mValues;
     
-    private final SensorListener mListener = new SensorListener() {
-    
-        public void onSensorChanged(int sensor, float[] values) {
-            if (Config.LOGD) Log.d(TAG, "sensorChanged (" + values[0] + ", " + values[1] + ", " + values[2] + ")");
-            mValues = values;
+    private final SensorEventListener mListener = new SensorEventListener() {
+        public void onSensorChanged(SensorEvent event) {
+            if (Config.LOGD) Log.d(TAG,
+                    "sensorChanged (" + event.values[0] + ", " + event.values[1] + ", " + event.values[2] + ")");
+            mValues = event.values;
             if (mView != null) {
                 mView.invalidate();
             }
         }
 
-        public void onAccuracyChanged(int sensor, int accuracy) {
-            // TODO Auto-generated method stub
-            
+        public void onAccuracyChanged(Sensor sensor, int accuracy) {
         }
     };
 
@@ -57,6 +54,7 @@ public class Compass extends GraphicsActivity {
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);
         mSensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
+        mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
         mView = new SampleView(this);
         setContentView(mView);
     }
@@ -66,9 +64,9 @@ public class Compass extends GraphicsActivity {
     {
         if (Config.LOGD) Log.d(TAG, "onResume");
         super.onResume();
-        mSensorManager.registerListener(mListener, 
-                       SensorManager.SENSOR_ORIENTATION,
-                       SensorManager.SENSOR_DELAY_GAME);
+
+        mSensorManager.registerListener(mListener, mSensor,
+                SensorManager.SENSOR_DELAY_GAME);
     }
     
     @Override
index ed5b5ae..87e0461 100644 (file)
 
 package com.example.android.apis.graphics;
 
-import android.app.Activity;
 import android.content.Context;
 import android.graphics.*;
-import android.hardware.SensorListener;
+import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
 import android.hardware.SensorManager;
 import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.os.SystemClock;
 import android.util.Config;
-import android.util.Log;
 import android.view.View;
 
 public class SensorTest extends GraphicsActivity {
+    private final String TAG = "SensorTest";
 
-       private SensorManager mSensorManager;
+    private SensorManager mSensorManager;
+    private Sensor mSensor;
     private SampleView mView;
     private float[] mValues;
     
@@ -76,29 +75,31 @@ public class SensorTest extends GraphicsActivity {
         }
     };
 
-    private final SensorListener mListener = new SensorListener() {
+    private final SensorEventListener mListener = new SensorEventListener() {
 
         private final float[] mScale = new float[] { 2, 2.5f, 0.5f };   // accel
-
         private float[] mPrev = new float[3];
-            
-        public void onSensorChanged(int sensor, float[] values) {
+        private long mLastGestureTime;
+
+        public void onSensorChanged(SensorEvent event) {
             boolean show = false;
             float[] diff = new float[3];
 
             for (int i = 0; i < 3; i++) {
-                diff[i] = Math.round(mScale[i] * (values[i] - mPrev[i]) * 0.45f);
+                diff[i] = Math.round(mScale[i] * (event.values[i] - mPrev[i]) * 0.45f);
                 if (Math.abs(diff[i]) > 0) {
                     show = true;
                 }
-                mPrev[i] = values[i];
+                mPrev[i] = event.values[i];
             }
             
             if (show) {
                 // only shows if we think the delta is big enough, in an attempt
                 // to detect "serious" moves left/right or up/down
-                android.util.Log.e("test", "sensorChanged " + sensor + " (" + values[0] + ", " + values[1] + ", " + values[2] + ")"
-                                   + " diff(" + diff[0] + " " + diff[1] + " " + diff[2] + ")");
+                android.util.Log.e(TAG, "sensorChanged " + event.sensor.getName() +
+                        " (" + event.values[0] + ", " + event.values[1] + ", " +
+                        event.values[2] + ")" + " diff(" + diff[0] +
+                        " " + diff[1] + " " + diff[2] + ")");
             }
             
             long now = android.os.SystemClock.uptimeMillis();
@@ -128,12 +129,8 @@ public class SensorTest extends GraphicsActivity {
                 }
             }
         }
-        
-        private long mLastGestureTime;
 
-        public void onAccuracyChanged(int sensor, int accuracy) {
-            // TODO Auto-generated method stub
-            
+        public void onAccuracyChanged(Sensor sensor, int accuracy) {
         }
     };
 
@@ -141,28 +138,24 @@ public class SensorTest extends GraphicsActivity {
     protected void onCreate(Bundle icicle) {
         super.onCreate(icicle);
         mSensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
+        mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
         mView = new SampleView(this);
         setContentView(mView);
-//        android.util.Log.d("skia", "create " + mSensorManager);
+        if (Config.LOGD) android.util.Log.d(TAG, "create " + mSensorManager);
     }
 
     @Override
     protected void onResume() {
         super.onResume();
-        
-        int mask = 0;
-//        mask |= SensorManager.SENSOR_ORIENTATION;
-        mask |= SensorManager.SENSOR_ACCELEROMETER;
-        
-        mSensorManager.registerListener(mListener, mask, SensorManager.SENSOR_DELAY_FASTEST);
-//        android.util.Log.d("skia", "resume " + mSensorManager);
+        mSensorManager.registerListener(mListener, mSensor, SensorManager.SENSOR_DELAY_FASTEST);
+        if (Config.LOGD) android.util.Log.d(TAG, "resume " + mSensorManager);
     }
     
     @Override
     protected void onStop() {
         mSensorManager.unregisterListener(mListener);
         super.onStop();
-//        android.util.Log.d("skia", "stop " + mSensorManager);
+        if (Config.LOGD) android.util.Log.d(TAG, "stop " + mSensorManager);
     }
 
     private class SampleView extends View {
@@ -182,7 +175,8 @@ public class SensorTest extends GraphicsActivity {
             mPath.close();
         }
     
-        @Override protected void onDraw(Canvas canvas) {
+        @Override
+        protected void onDraw(Canvas canvas) {
             Paint paint = mPaint;
 
             canvas.drawColor(Color.WHITE);
@@ -216,4 +210,3 @@ public class SensorTest extends GraphicsActivity {
         }
     }
 }
-
index 910961d..9863222 100644 (file)
@@ -20,9 +20,10 @@ import android.app.Activity;
 import android.content.Context;
 import android.os.Bundle;
 import android.view.View;
+import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
 import android.hardware.SensorManager;
-import android.hardware.SensorListener;
-import android.util.Log;
 import android.graphics.Bitmap;
 import android.graphics.Canvas;
 import android.graphics.Color;
@@ -47,13 +48,10 @@ OS / Sensors
  * </table> 
  */
 public class Sensors extends Activity {
-    /** Tag string for our debug logs */
-    private static final String TAG = "Sensors";
-
     private SensorManager mSensorManager;
     private GraphView mGraphView;
 
-    private class GraphView extends View implements SensorListener
+    private class GraphView extends View implements SensorEventListener
     {
         private Bitmap  mBitmap;
         private Paint   mPaint = new Paint();
@@ -172,29 +170,29 @@ public class Sensors extends Activity {
             }
         }
 
-        public void onSensorChanged(int sensor, float[] values) {
+        public void onSensorChanged(SensorEvent event) {
             //Log.d(TAG, "sensor: " + sensor + ", x: " + values[0] + ", y: " + values[1] + ", z: " + values[2]);
             synchronized (this) {
                 if (mBitmap != null) {
                     final Canvas canvas = mCanvas;
                     final Paint paint = mPaint;
-                    if (sensor == SensorManager.SENSOR_ORIENTATION) {
+                    if (event.sensor.getType() == Sensor.TYPE_ORIENTATION) {
                         for (int i=0 ; i<3 ; i++) {
-                            mOrientationValues[i] = values[i];
+                            mOrientationValues[i] = event.values[i];
                         }
                     } else {
                         float deltaX = mSpeed;
                         float newX = mLastX + deltaX;
 
-                        int j = (sensor == SensorManager.SENSOR_MAGNETIC_FIELD) ? 1 : 0;
+                        int j = (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) ? 1 : 0;
                         for (int i=0 ; i<3 ; i++) {
                             int k = i+j*3;
-                            final float v = mYOffset + values[i] * mScale[j];
+                            final float v = mYOffset + event.values[i] * mScale[j];
                             paint.setColor(mColors[k]);
                             canvas.drawLine(mLastX, mLastValues[k], newX, v, paint);
                             mLastValues[k] = v;
                         }
-                        if (sensor == SensorManager.SENSOR_MAGNETIC_FIELD)
+                        if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD)
                             mLastX += mSpeed;
                     }
                     invalidate();
@@ -202,9 +200,7 @@ public class Sensors extends Activity {
             }
         }
 
-        public void onAccuracyChanged(int sensor, int accuracy) {
-            // TODO Auto-generated method stub
-            
+        public void onAccuracyChanged(Sensor sensor, int accuracy) {
         }
     }
     
@@ -226,10 +222,14 @@ public class Sensors extends Activity {
     @Override
     protected void onResume() {
         super.onResume();
+        mSensorManager.registerListener(mGraphView,
+                mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
+                SensorManager.SENSOR_DELAY_FASTEST);
+        mSensorManager.registerListener(mGraphView,
+                mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),
+                SensorManager.SENSOR_DELAY_FASTEST);
         mSensorManager.registerListener(mGraphView, 
-                SensorManager.SENSOR_ACCELEROMETER | 
-                SensorManager.SENSOR_MAGNETIC_FIELD | 
-                SensorManager.SENSOR_ORIENTATION,
+                mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),
                 SensorManager.SENSOR_DELAY_FASTEST);
     }