Android не вибрирует при значениях менее 5000 миллисекунд

Я пытаюсь сделать вибрацию в Android, это мой (типичный) код вибрации:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    vb.vibrate(VibrationEffect.createOneShot(300, VibrationEffect.DEFAULT_AMPLITUDE));
} else {
    //deprecated in API 26
    vb.vibrate(300);
}

Моя проблема в том, что если я использую менее 5000 миллисекунд в качестве первого параметра (300 в примере), телефон не вибрирует, но если я использую ›= 5000 миллисекунд, работает.

Примечание: на устройствах Android с версией ‹ SDK26 работает › SDK26 нет...

Идея? Спасибо


person daniel_tagui    schedule 22.06.2020    source источник
comment
Проверьте, есть ли на устройстве какой-либо режим экономии заряда батареи, который может отключить вибрацию... Я получил это из комментария к ответу здесь по адресу stackoverflow.com/a/51553799/9365212   -  person AgentP    schedule 22.06.2020
comment
У меня не активирован режим экономии заряда батареи, и я пытался активировать и деактивировать диспетчер батареи.   -  person daniel_tagui    schedule 22.06.2020


Ответы (1)


Если бы та же проблема оказалась, пользователь должен включить вибрацию Touch в настройках.

person Code Demon    schedule 22.06.2020