Я планирую запрограммировать кнопку таким образом, чтобы при нажатии кнопки вибрация начиналась и продолжала вибрировать до пальца вверх или кнопка не нажата.Вибрация до тех пор, пока кнопка не будет нажата и не перестанет вибрировать, когда кнопка не нажата (или снят палец)
Я использую для прослушивания Touch для этой цели.
Мой код выглядит следующим образом:
package com.example.vibrator;
import android.app.Activity;
import android.os.Bundle;
import android.os.Vibrator;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.Button;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Vibrator vibrator;
vibrator = (Vibrator) getSystemService(MainActivity.VIBRATOR_SERVICE);
Button btn = (Button) findViewById(R.id.button1);
btn.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
if (action == MotionEvent.ACTION_DOWN) {
vibrator.vibrate(60000);
} else if (action == MotionEvent.ACTION_UP) {
vibrator.cancel();
}
return true;
}
});
}
}
Проблема в этом коде является то, что он продолжает вибрировать и когда палец вверх вибрация не прекращается или отменяется.
P.S я использовал разрешение в явном
Проверьте с 'Log', если ваш' еще if' называется. Или, может быть, что-то другое обрабатывает событие motion up, поэтому ваша кнопка onTouchListener на uour не получит событие. Также проверьте, какой из них вы получаете от действия при отпускании пальца с экрана. – Mike
Вы должны принять мой ответ, если он вам поможет. – yshahak
Благодарю так много брата (yshahak). ожидая дополнительной поддержки в будущем. –