Я пытался сделать простое приложение, чтобы мой телефон вибрировал
import android.content.Context;
import android.os.Vibrator;
Context context;
Vibrator v = (Vibrator) context.getSystemService(Context.VIBRATE_SERVICE);
void setup(){}
void draw(){
v.vibrate(1000);
noLoop();
}
PS. Я дал разрешения на вибрацию через настройки
Так что я делаю не так?
1 ответ
Решение
Использовать этот
Vibrator v = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
вместо этого
Vibrator v = (Vibrator) context.getSystemService(Context.VIBRATE_SERVICE);
ПРИМЕЧАНИЕ: не забудьте инициализировать ваш
context
ОБНОВИТЬ
Vibrator.vibrate()
устарела
использовать этот
void draw(){
if (Build.VERSION.SDK_INT >= 26) {
v.vibrate(VibrationEffect.createOneShot(1000, VibrationEffect.DEFAULT_AMPLITUDE));
} else {
v.vibrate(1000);
}
}
Образец кода
import android.content.Context;
import android.os.Build;
import android.os.VibrationEffect;
import android.os.Vibrator;
public class Tester
{
Context context;
Vibrator vibrator;
public Tester(Context context) {
this.context = context;
vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
}
void setup(){}
void draw(){
if (Build.VERSION.SDK_INT >= 26) {
vibrator.vibrate(VibrationEffect.createOneShot(150, VibrationEffect.DEFAULT_AMPLITUDE));
} else {
vibrator.vibrate(150);
}
}
}
вызвать этот метод, как это
Tester tester= new Tester(this);
tester.draw();