我使用“vibrator.vibrate(2000);” 对于振动,它会振动,但强度非常柔和。我知道我的手机能够振动得更厉害,因为在接到电话或通知时它会正确振动。为什么函数 vibrate() 这么周?谢谢
Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(4000);
不过,在收到短信或通知时,手机会振动得很厉害
在大多数手机中,振动(非常粗略)是由轴上带有偏置重物的微型振动电机引起的。这样,当电机启动并且轴旋转时,偏置重量会导致电机以及它所连接的任何东西振动。除了向电机供电的持续时间外,没有其他控制措施。
尽管这似乎无法解释为什么来电回执或通知会产生比您通过 API 功能获得的更强烈的振动。所以也许我应该把它作为评论而不是答案?(但我看不到如何在评论中获取图片)
您不能进一步增加振动强度。因此,为了获得更好的感觉,您可以使用 public void vibrate(long[] pattern, int repeat)
而不是vibrator.vibrate(2000);
这里的模式是(来自api参考)
传入一个整数数组,它们是打开或关闭振动器的持续时间(以毫秒为单位)。第一个值表示打开振动器之前要等待的毫秒数。下一个值表示在关闭振动器之前保持振动器开启的毫秒数。随后的值在持续时间(以毫秒为单位)之间交替,以关闭振动器或打开振动器。
所以你可以尝试不同的模式以获得更好的感觉。例如
final long[] pattern = { 0, 200, 500, 500, 200 };
vibrator.vibrate(pattern , 0);
您可以创建自己的模式来检查。
这是一个有根据的猜测,因为我从未使用过振动器,但也许尝试增加您传递给函数的值?
在我的手机(搭载 Android 4.3 的三星 Galaxy S3)上,振动器的强度由菜单项中的系统范围设置触发
phone settings > My device > Sound > Vibration intensity
Incoming call
在这里,您可以调整、Notification
和的振动强度Haptic feedback
。设置会Notification
影响您在实施中引起的振动强度。将该值设置为零会导致您的手机根本不会与您的代码一起振动。