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;
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) {
}
};
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);
}
{
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
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;
}
};
- 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();
}
}
}
-
- private long mLastGestureTime;
- public void onAccuracyChanged(int sensor, int accuracy) {
- // TODO Auto-generated method stub
-
+ public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
};
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 {
mPath.close();
}
- @Override protected void onDraw(Canvas canvas) {
+ @Override
+ protected void onDraw(Canvas canvas) {
Paint paint = mPaint;
canvas.drawColor(Color.WHITE);
}
}
}
-
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;
* </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();
}
}
- 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();
}
}
- public void onAccuracyChanged(int sensor, int accuracy) {
- // TODO Auto-generated method stub
-
+ public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}
@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);
}