我正在使用Android的VIBRATOR_SERVICE
为按钮触摸给予触觉反馈。
((Vibrator) getSystemService(VIBRATOR_SERVICE)).vibrate(300);
Android Studio给予我,方法vibrate(interval)
已弃用,我应该将VibrationEffect
用于API〉23。
所以我使用了VibrationEffect
的方法createOneShot
,它有两个参数:间隔和振幅。
我试着搜索它,但没有线索什么传递为amplitude
,有人知道如何使用它吗?
更新添加的代码
// Vibrate for 150 milliseconds
private void shakeItBaby() {
if (Build.VERSION.SDK_INT >= 26) {
((Vibrator) getSystemService(VIBRATOR_SERVICE)).vibrate(VibrationEffect.createOneShot(150,10));
} else {
((Vibrator) getSystemService(VIBRATOR_SERVICE)).vibrate(150);
}
}
9条答案
按热度按时间jv4diomz1#
与Kotlin
7bsow1i62#
振幅是一个整数值。它是振动的强度。它必须是一个介于1和255之间的值,或者
DEFAULT_AMPLITUDE
是-1。您可以将其用作
VibrationEffect.DEFAULT_AMPLITUDE
更多详情here
hrysbysz3#
您可以将其用于触觉反馈(振动):
在
HapticFeedbackConstants
中还有其他常量可用,如VIRTUAL_KEY
、KEYBOARD_TAP
...pepwfjgg4#
更新Kotlin
调用函数如下:
请确保按如下方式向AndroidManifest.xml添加权限:
请注意,您不需要在运行时请求使用振动的权限。
您需要取消
else
子句中的弃用,因为警告来自较新的SDK。1hdlvixo5#
我只是偶然发现了这一点,发现
VibrationEffect.createWaveform()
基本上使用了与旧的vibrate()
相同的long[]
-模式。因此,你可以像这样重用你现有的模式(这是一个Kotlin扩展函数):
您也可以使用模式来代替
VibrationEffect.createOneShot()
(例如longArrayOf(0, 150)
),因此无需使用不同的函数。slsn1g296#
此库可以帮助您:https://github.com/josephrubin/Rumble-4-Android
您只需要
Rumble.once(150);
它为您处理API版本。
1l5u6lss7#
为我工作
kotlin ext fun
对于触觉效果,振动有5毫秒!!(
SHORT_HAPTIC_FEEDBACK_DURATION
)用法
许可
祝你好运:))
ffx8fchx8#
Open管理NuGet软件包
搜索并安装Xamarin.Essentials
f4t66c6m9#
31和26 SDK的检查SDK代码
ADD权限