振动按钮点击在Android Studio中不起作用



我想在我的应用程序中添加振动功能,只想开始一个简单的振动,我尝试了很多od turtoria,但似乎都不起的作用

@SuppressLint("NewApi")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val timer_button = findViewById<Button>(R.id.timer_button)
val timer_text: EditText = findViewById<EditText>(R.id.time_text)
val vibrator  = getSystemService(VIBRATOR_MANAGER_SERVICE) as VibratorManager
timer_button.setOnClickListener {
//val pattern = longArrayOf(0, 200, 100, 300)
vibrator.getDefaultVibrator().vibrate(VibrationEffect.createOneShot(1000,VibrationEffect.DEFAULT_AMPLITUDE))
Toast.makeText(this, vibrator.getDefaultVibrator().getId().toString(),Toast.LENGTH_SHORT).show()
}}

此外,我还在manifest.xml 中添加了振动权限

<uses-permission android:name="android.permission.VIBRATE" />

它适用于所有APIS

val vibration = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
val vbManager =
getSystemService(Context.VIBRATOR_MANAGER_SERVICE) as VibratorManager
vbManager.defaultVibrator
} else {
@Suppress("DEPRECATION")
getSystemService(VIBRATOR_SERVICE) as Vibrator
}
if (vibration.hasVibrator()) {
vibration.vibrate(VibrationEffect.createOneShot(100, VibrationEffect.DEFAULT_AMPLITUDE))
}

相关内容