如何使用振动器效果在点击按钮上振动设备? 使用Kotlin

按任何按钮时如何震动设备。 我已经使用这个代码,但没有任何影响或振动进行

//click listener imgNextBtn.setOnClickListener { val vibe:Vibrator = activity?.getSystemService(Context.VIBRATOR_SERVICE) as Vibrator vibe.vibrate(500) Utilities.alertDialog(this, activity!!, mContent!! } } 

要么

  //click listener imgNextBtn.setOnClickListener { val vibe:Vibrator = activity?.getSystemService(Context.VIBRATOR_SERVICE) as Vibrator var effect:VibrationEffect = VibrationEffect.createOneShot(1000, VibrationEffect.DEFAULT_AMPLITUDE); vibe.vibrate(effect) Utilities.alertDialog(this, activity!!, mContent!! } } 

menifest:`

   ` 

使用kotlin工作样品的振动试试这个

的Manifest.xml

   

在kotlin:

  val vibratorService = getSystemService(Context.VIBRATOR_SERVICE) as Vibrator vibratorService.vibrate(500) 

activity_main.xml中

     

MainActivity.kt

 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main); val btn_click_me = findViewById(R.id.btn_vibrate) as Button btn_click_me.setOnClickListener { val vibratorService = getSystemService(Context.VIBRATOR_SERVICE) as Vibrator vibratorService.vibrate(500) } } } 

@ R2R给出的答案是完美的。 但是, Vibrator类的vibrate()方法已从API Level 26 弃用 。 所以,我给你更新的代码:

你不必改变一切。 只需更新MainActivity.kt中的 振动代码即可。

MainActivity.kt:

 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main); val btn_click_me = findViewById(R.id.btn_vibrate) as Button btn_click_me.setOnClickListener { val vibratorService = getSystemService(Context.VIBRATOR_SERVICE) as Vibrator if (vibrator.hasVibrator()) { // Vibrator availability checking if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { vibrator.vibrate(VibrationEffect.createOneShot(500, VibrationEffect.DEFAULT_AMPLITUDE)) // New vibrate method for API Level 26 or higher } else { vibrator.vibrate(500) // Vibrate method for below API Level 26 } } } } }