如何使用振动器效果在点击按钮上振动设备? 使用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 } } } } }