Почему вибрация не работает на Android P (API 28)?
Я пытаюсь реализовать тактильную обратную связь при изменении значения панели поиска. Он корректно работает на Android pre-P. На Android P это не работает вообще. Код:
private val vibrator = context.getSystemService(Context.VIBRATOR_SERVICE) as Vibrator?
private val effect by lazy { VibrationEffect.createOneShot(VIBRATION_DURATION, 50)}
...
fun vibrate() {
if (vibrator == null || !vibrator.hasVibrator()) {
return
}
vibrator.cancel()
vibrator.vibrate(effect)
3 ответа
Именно то, что сказал Майк. а для android Pie - Настройка-> Звуки и вибрация -> Системные звуки и вибрация -> Сенсорная вибрация
Вы можете использовать вибрацию (атрибуты VibrationEffect vibe, VibrationAttributes)
(Примечание. До уровня API 33 вам необходимо использовать AudioAttributes вместо атрибутов вибрации)
Установив для параметра «Использование VibrationAttributes/AudioAttributes», например, значение USAGE_NOTIFICATION, вы, по крайней мере, получите вибрацию, включенную по умолчанию. Однако пользователь по-прежнему может отключить вибрацию уведомлений в настройках.