<uses-permission android:name="android.permission.VIBRATE" />
object VibrateUtil {
//震动milliseconds毫秒
fun vibrate(context: Context, milliseconds: Long) {
val vib = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
val vibratorManager =
context.getSystemService(Context.VIBRATOR_MANAGER_SERVICE) as VibratorManager
vibratorManager.defaultVibrator
} else {
context.getSystemService(VIBRATOR_SERVICE) as Vibrator
}
vib.vibrate(milliseconds)
}
/**
* 以pattern[]方式震动
* @param repeat -1 不重复 0一直震动
*/
fun vibrate(context: Context, pattern: LongArray, repeat: Int) {
val vib = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
val vibratorManager =
context.getSystemService(Context.VIBRATOR_MANAGER_SERVICE) as VibratorManager
vibratorManager.defaultVibrator
} else {
context.getSystemService(VIBRATOR_SERVICE) as Vibrator
}
vib.vibrate(pattern, repeat)
}
//取消震动
fun vibrateCancel(context: Context) {
val vib = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
val vibratorManager =
context.getSystemService(Context.VIBRATOR_MANAGER_SERVICE) as VibratorManager
vibratorManager.defaultVibrator
} else {
context.getSystemService(VIBRATOR_SERVICE) as Vibrator
}
try {
vib.cancel()
} catch (e: Exception) {
e.printStackTrace()
}
}
}