设备振动不断重复

device vibration keeps repeating infinitely

我正在尝试振动设备并重复此模式 3 次,总共振动 6 次。我正在使用下面的代码,但我的设备一直在无限振动。如何在这 3 次重复后停止振动?

private void deviceVibration (){
   
   long[] pattern = {0, 2000, 1000, 2000,1000};
   vibrator.vibrate(pattern,3);

}

根据 Vibrator Documentation

public void vibrate (long[] pattern, int repeat)

这个long[] pattern是一个长数组,用于打开或关闭振动器。 int repeat 是要重复的模式索引,如果不想重复,则为 -1。

因此,如果您输入 3,它将重复您模式的 3 索引位置。

long[] pattern = {0, 2000, 1000, 2000,1000}; <-- 2000 will be repeated

所以模式没问题,你需要去掉一个只振动三下然后把你的3换成-1不重复。

你可以试试这个

long[] pattern = {0, 2000, 1000, 2000,1000};
 vibrator.vibrate(pattern, -1);

-1 表示仅按照模式中提到的方式振动。

你的代码应该是这样的

long[] pattern = {0, 2000, 1000, 2000,1000, 2000,1000};
vibrator.vibrate(pattern, -1);

正如Skizo-ozᴉʞS说的采纳他的回答更完美