Я пытаюсь ударить API, когда пользователь встряхивает устройство 10 раз. Я пробовал много git простой и стек переполнение решения, но не из них могут решить мою проблему. некоторые из библиотеки Git работают, но обнаруживают дрожание до 10 раз или после 10 раз. i have tried this library
and this библиотека. пожалуйста, дайте мне ценное решение.обнаружить Shake в android
2
A
ответ
1
С помощью SensorListener
Пожалуйста, проверьте этот галочкой ответ ...
Вы должны настроить SHAKE_THRESHOLD значение для достижения этой цели
How to detect shake event with android?
Спасибо!
+0
Я уже пробовал. но не работает для меня –
+1
вставьте свой код –
0
имеет статическую переменную, которая увеличивается каждый раз при обнаружении дрожания.
static int count = 0;
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
long curTime = System.currentTimeMillis();
if ((curTime - mLastShakeTime) > MIN_TIME_BETWEEN_SHAKES_MILLISECS) {
float x = event.values[0];
float y = event.values[1];
float z = event.values[2];
double acceleration = Math.sqrt(Math.pow(x, 2) +
Math.pow(y, 2) +
Math.pow(z, 2)) - SensorManager.GRAVITY_EARTH;
if (acceleration > SHAKE_THRESHOLD) {
mLastShakeTime = curTime;
count++;
if(count==10){
//your code goes here
}
}
}
}
Это не так просто с несколькими последовательными встрясками. Я считаю, что вам нужно определить, что такое ** встряска ** и какой ** тайм-аут ** между двумя колебаниями сам по себе, чтобы быть удовлетворенным решением. – NitroNbg