0

我使用“vibrator.vibrate(2000);” 对于振动,它会振动,但强度非常柔和。我知道我的手机能够振动得更厉害,因为在接到电话或通知时它会正确振动。为什么函数 vibrate() 这么周?谢谢

Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(4000); 

不过,在收到短信或通知时,手机会振动得很厉害

4

4 回答 4

2

在大多数手机中,振动(非常粗略)是由轴上带有偏置重物的微型振动电机引起的。这样,当电机启动并且轴旋转时,偏置重量会导致电机以及它所连接的任何东西振动。除了向电机供电的持续时间外,没有其他控制措施。

典型的微型振动电机

尽管这似乎无法解释为什么来电回执或通知会产生比您通过 API 功能获得的更强烈的振动。所以也许我应该把它作为评论而不是答案?(但我看不到如何在评论中获取图片)

于 2012-12-10T11:20:48.173 回答
2

您不能进一步增加振动强度。因此,为了获得更好的感觉,您可以使用 public void vibrate(long[] pattern, int repeat) 而不是vibrator.vibrate(2000);

这里的模式是(来自api参考)

传入一个整数数组,它们是打开或关闭振动器的持续时间(以毫秒为单位)。第一个值表示打开振动器之前要等待的毫秒数。下一个值表示在关闭振动器之前保持振动器开启的毫秒数。随后的值在持续时间(以毫秒为单位)之间交替,以关闭振动器或打开振动器。

所以你可以尝试不同的模式以获得更好的感觉。例如

final long[] pattern = { 0, 200, 500, 500, 200 };
vibrator.vibrate(pattern , 0);

您可以创建自己的模式来检查。

于 2012-12-10T02:46:48.370 回答
0

这是一个有根据的猜测,因为我从未使用过振动器,但也许尝试增加您传递给函数的值?

于 2012-12-10T00:10:50.860 回答
0

在我的手机(搭载 Android 4.3 的三星 Galaxy S3)上,振动器的强度由菜单项中的系统范围设置触发

phone settings > My device > Sound > Vibration intensity

Incoming call在这里,您可以调整、Notification和的振动强度Haptic feedback。设置会Notification影响您在实施中引起的振动强度。将该值设置为零会导致您的手机根本不会与您的代码一起振动。

于 2014-11-08T12:39:21.937 回答