Android — устройство не вибрирует, когда экран заблокирован

#java #android #vibration #screen-lock

Вопрос:

Я разрабатываю приложение VOIP, и при приеме вызова приложение показывает пользователю экран входящего вызова, а телефон вибрирует и звонит ( если телефон не находится в беззвучном режиме ). Кажется, все идет хорошо, пока на некоторых устройствах ( Samsung SM-A125F [ Android 11 ] была задокументирована эта проблема), когда устройство заблокировано, а экран выключен, телефон не вибрирует и не звонит, а отображается только экран входящего вызова. У кого-то есть несколько советов по поводу этого странного поведения, спасибо!

КОД

IncomingCallActivity.java

флаги windows

 getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON |  WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |  WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |  WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON  );  

вибрирует и звенит часть

 if (Build.VERSION.SDK_INT gt;= Build.VERSION_CODES.O) {  vibrator.vibrate(VibrationEffect.createWaveform(new long[]{0,  1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000}, 0)); } else {  vibrator.vibrate(new long[]{0,  1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,  1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,  1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000}, -1); }