【问题标题】:device vibration keeps repeating infinitely设备振动不断重复
【发布时间】:2021-09-17 12:57:03
【问题描述】:

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

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

}

【问题讨论】:

标签: android android-vibration


【解决方案1】:

根据Vibrator Documentation

public void 振动(long[] 模式, 整数重复)

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

所以如果你放 3 它将重复你的模式的 3 索引位置。

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

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

【讨论】:

  • 所以如果我将模式中的索引 0 更改为 3 long[] pattern = {3, 2000, 1000, 2000,1000}; 并设置 vibrator.vibrate(pattern,0); 它应该只重复 3 次,对吧?
【解决方案2】:

你可以试试这个

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

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

【讨论】:

  • 它会振动 2 次我想重复这个模式 3 次
  • @zon1k 然后使用long[] pattern = {0, 2000, 1000, 2000,1000, 2000,1000};
【解决方案3】:

你的代码应该是这样的

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

正如 Skizo-ozᴉʞS 所说,接受他的回答更完美

【讨论】:

    猜你喜欢
    • 2019-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-31
    • 2023-03-16
    • 2023-03-08
    • 2013-03-14
    相关资源
    最近更新 更多