デバイスを振ると、sensorevenetlistner を使用してインテントがトリガーされます。問題は、インテントが発火している小さな揺れだけですが、デバイスを 3 回または一定回数振ったときにのみ発火させたいと考えています。
private void getAccelerometer(SensorEvent event) {
float[] values = event.values;
// Movement
float x = values[0];
float y = values[1];
float z = values[2];
float accelationSquareRoot = (x * x + y * y + z * z)
/ (SensorManager.GRAVITY_EARTH * SensorManager.GRAVITY_EARTH);
long actualTime = System.currentTimeMillis();
if (accelationSquareRoot >= 2) //
{
if (actualTime - lastUpdate < 200) {
return;
}
lastUpdate = actualTime;
//Toast.makeText(this, "Device was shuffed", Toast.LENGTH_SHORT)
// .show();
Intent myIntent = new Intent(SensorTestActivity.this, passwordActivity.class);
startActivity(myIntent);
}
};
以下は私の完全なコードです
私は打たれました..どんな提案でも大歓迎です。