0
我想讓我的搖動傳感器工作。在晃動我的android手機使事情發生時,現在沒有反應,當我搖動我的手機。我的代碼如下:搖動傳感器不工作
private SensorManager mSensorManager;
private float mAccel; // acceleration apart from gravity
private float mAccelCurrent; // current acceleration including gravity
private float mAccelLast; // last acceleration including gravity
,並在OnCreate:
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mSensorManager.registerListener(mSensorListener, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL);
mAccel = 0.00f;
mAccelCurrent = SensorManager.GRAVITY_EARTH;
mAccelLast = SensorManager.GRAVITY_EARTH;
上acitvity
private final SensorEventListener mSensorListener = new SensorEventListener() {
public void onSensorChanged(SensorEvent se) {
float x = se.values[0];
float y = se.values[1];
float z = se.values[2];
mAccelLast = mAccelCurrent;
mAccelCurrent = FloatMath.sqrt(x*x + y*y + z*z);
float delta = mAccelCurrent - mAccelLast;
mAccel = mAccel * 0.9f + delta * 0.1f; // perform low-cut filter
}
public void onAccuracyChanged(Sensor sensor, int accuracy) {
if(mAccel > 0.1)
{
Toast toast = Toast.makeText(getApplicationContext(), "Device has shaken.", Toast.LENGTH_LONG); toast.show();
}
}
};
謝謝!正是我所尋找的,+ 1像魅力一樣工作 –
不客氣。樂意效勞。 – Jeba
我可以問你一件事,我應該如何參考傳感器,所以當我點擊一個按鈕來激活和停用搖動效果 –