Я хочу, чтобы мой датчик вибрации работал. Чтобы встряхнуть мой телефон 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
Могу ли я задать вам еще одну вещь, как мне обратиться к датчику, поэтому, когда я нажимаю на кнопку, чтобы активировать и деактивировать эффект встряски –