调用vibrate()方法后,Android的振动器服务强度模式适用于系统的软键

时间:2015-05-29 19:11:11

标签: android vibrate

我正在使用Android的VIBRATOR_SERVICE使我的设备在有限的,非重复的事件中振动,并使用这样的自定义非重复模式:

((Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE))
                .vibrate(Constants.VIBRATION_DELETE_CHAT, 1);

这适合所需的活动。但是,一旦设备按预期振动,只要应用程序没有停止(通过手动强制停止或等待系统停止它),设备的软键就会以我最初指定的相同高强度模式振动。我的活动。

一旦我设置了自己的自定义单次振动,或者为什么软键受到这行代码的影响,是否需要设置系统的振动默认值?

谢谢,

1 个答案:

答案 0 :(得分:1)

Vibrator.vibrate(long[] pattern, int repeat)的调用不应影响系统振动默认值。

检查您传递的int repeat参数的值是否正确。此参数是您提供的振动模式的索引。当您将1作为此参数传递时,您需要手动调用Vibrator.cancel()以停止重复。将此参数更改为-1以防止重复。

此外,如果此索引超出振动模式阵列大小的范围,则可能会导致问题。