Страница 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, отключить экран вы не можете.
Короче ничего лучше чем стандартные средства нет.
Спасибо Вам за ответы.
Так же спасибо автору сайта за уроки очень помогают.