Я пытался сделать простое приложение, чтобы мой телефон вибрировал

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();
Другие вопросы по тегам