/ Published in: Java
Expand |
Embed | Plain Text
package com.gedankentank.android.sensor; import java.util.List; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.util.Log; public class AccelerometerListener implements SensorEventListener { private SensorManager sensorManager; private List<Sensor> sensors; private Sensor sensor; private long lastUpdate = -1; private long currentTime = -1; private float last_x, last_y, last_z; private float current_x, current_y, current_z, currenForce; private static final int FORCE_THRESHOLD = 900; private final int DATA_X = SensorManager.DATA_X; private final int DATA_Y = SensorManager.DATA_Y; private final int DATA_Z = SensorManager.DATA_Z; public AccelerometerListener(Activity parent) { this.sensorManager = sensorManager; this.subscriber = subscriber; this.sensors = sensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER); if (sensors.size() > 0) { sensor = sensors.get(0); } } public void start () { if (sensor!=null) { sensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_GAME); } } public void stop () { sensorManager.unregisterListener(this); } public void onAccuracyChanged(Sensor s, int valu) { } public void onSensorChanged(SensorEvent event) { if (event.sensor.getType() != Sensor.TYPE_ACCELEROMETER || event.values.length < 3) return; if ((currentTime - lastUpdate) > 100) { long diffTime = (currentTime - lastUpdate); lastUpdate = currentTime; current_x = event.values[DATA_X]; current_y = event.values[DATA_Y]; current_z = event.values[DATA_Z]; currenForce = Math.abs(current_x+current_y+current_z - last_x - last_y - last_z) / diffTime * 10000; if (currenForce > FORCE_THRESHOLD) { // Device has been shaken now go on and do something // you could now inform the parent activity ... } last_x = current_x; last_y = current_y; last_z = current_z; } } }
Comments
Subscribe to comments
You need to login to post a comment.

Hey i was checking out this code. I have errors on lines 28 and 29 any thoughts on how to fix this? Also is there a way to make it look for shaking every second? I made an app that rolles dice when the phone is shaken. I only want it to role the dice every second so it cant role two many times?
please help thanks!
Hey i was checking out this code. I have errors on lines 28 and 29 any thoughts on how to fix this? Also is there a way to make it look for shaking every second? I made an app that rolles dice when the phone is shaken. I only want it to role the dice every second so it cant role two many times?
please help thanks!