Страница 1 из 1

Как погасить экран при звонке

Добавлено: 17 авг 2014, 10:37
Akvadak
Здравствуйте.

Уважаемые, подскажите есть ли возможность каким либо образом погасить экран при звонке абоненту.

Я начинаю набором номера без участия пользователя.

Код: Выделить всё

     number = "tel://"+mAlert.getPhone();
     Uri callUri = Uri.parse(number);

     Intent callIntent = new Intent(Intent.ACTION_CALL,callUri);
            callIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_NO_USER_ACTION);

     startActivity(callIntent);
Вызов происходит из сервиса в фоне.
Телефон находится в спящем режиме, экран погашен.
После того как он начинает звонить телефон выходит из спячки и на экране отображается активность дозвона.

Я так понял что набрать номер без отображения активности не получится (да мне это и не надо), а вот как сделать так что бы экран телефона не включался.

Пробовал через PowerManager но этот вариант не работает.

Еще скажу сразу, что делаю не троян, вирус и прочее вредоносное ПО.

Re: Как погасить экран при звонке

Добавлено: 18 авг 2014, 10:56
altwin
Никак, "будит" экран системное событие с большим приоритетом, чем доступен вашему приложению. Более того в современных моделях управление включением и отключением экрана во время звонка передается датчику приближения на лицевой части. да и отличается поведение подсветки на большинстве моделей. С рутом конечно можно все, но это извращение, более того пытаться менять поведение девайса в его ключевых функциях -это очень дурная практика.

Re: Как погасить экран при звонке

Добавлено: 18 авг 2014, 17:22
Akvadak
altwin писал(а):Никак, "будит" экран системное событие с большим приоритетом,
Плохо конечно.
Я так понял что системне сообщение, типа ACTION_SCREEN_OFF тоже никак нельзя отправить.

Хорошо, а можно ли как то погасить экран по быстрому после того как дозвон прошел.

Мысль такая.
Экран выключен телефон в спячке.
Мой сервис начинает дозвон, экран включился, на нем отображается телефонная звонилка.
Дозвон закончился (абонент отбил вызов).
Звонилка исчезла с экрана
После чего экран включен и отключится системой только после задержки.

Можно ли как то повлиять на это, после исчезания звонилки погасить дисплей.

Re: Как погасить экран при звонке

Добавлено: 19 авг 2014, 12:02
altwin
Akvadak писал(а):
altwin писал(а):Никак, "будит" экран системное событие с большим приоритетом,
Плохо конечно.
Я так понял что системне сообщение, типа ACTION_SCREEN_OFF тоже никак нельзя отправить.

Хорошо, а можно ли как то погасить экран по быстрому после того как дозвон прошел.

Мысль такая.
Экран выключен телефон в спячке.
Мой сервис начинает дозвон, экран включился, на нем отображается телефонная звонилка.
Дозвон закончился (абонент отбил вызов).
Звонилка исчезла с экрана
После чего экран включен и отключится системой только после задержки.

Можно ли как то повлиять на это, после исчезания звонилки погасить дисплей.
вы можете только использовать FLAG_KEEP_SCREEN_ON ито при условии, что приложение в foreground, отключить экран вы не можете.
Для реализации своей мысли вам не нужно экран отключать, вы можете его включить, когда идет звонок, а выключится он сам. Но опятьже пользователь в настройках может просто запретить вам выводить телефон из сна. Опятьже вы можете усыпить девайс к примеру: goToSleep, но это вовсе не гаррантирует того, что другое событие его не разбудит. В любом случае эти события особо не нужны, потому как при отсутсвии активности экран итак выключится, и включится тоже сам.

Re: Как погасить экран при звонке

Добавлено: 20 авг 2014, 00:00
Akvadak
altwin писал(а): вы можете только использовать FLAG_KEEP_SCREEN_ON ито при условии, что приложение в foreground, отключить экран вы не можете.
Короче ничего лучше чем стандартные средства нет.
Спасибо Вам за ответы.
Так же спасибо автору сайта за уроки очень помогают.