Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Razangann
12 / 12 / 1
Регистрация: 11.01.2013
Сообщений: 148
1

Запрет выполнение Activity из-за энергосбережения

02.03.2014, 22:19. Просмотров 887. Ответов 6
Метки нет (Все метки)

Столкнулся с такой проблемой. Сервис запускает активити, которое включает экран, но из-за энергосбережения , активити запускается только после разблокировки... Если подключить телефон к зарядке, то все работает нормально, но при отключении от сети, не срабатывает. Скорее всего режим энергосбережения блокирует запуск активити. Как можно это предотвратить? Как разрешить данному приложению/активити работать при заблокированном телефоне? Фрагмент кода активити:
Java
1
2
3
4
5
6
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
        setContentView(R.layout.activity_my);
}
Разрешения в манифесте:
XML
1
2
3
4
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.DEVICE_POWER" />
Вот....подскажите пожалуйста)) Заранее благодарен
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2014, 22:19
Ответы с готовыми решениями:

Запрет на нажатия в activity
Здравствуйте. Есть небольшая проблема. Как запретить нажатия на элементы в активности на некоторое...

Запрет на выполнение события
Можно ли в C++ Builder поставить запрет на выполнение определённого события? Например, событие...

Запрет на выполнение программ
Я правильно понимаю, что чтобы запретить пользователям пользоваться определённой программой, надо...

Запрет на повторное выполнение скрипта в bash
Добрый день! Как можно запретить выполнятся скрипту, если прошлый его запуск был с ошибкой?

Запрет cron скрипта на выполнение через браузер
Я извиняюсь, за, возможно глупый вопрос, написал людям скрипт, отсылающий письма, поместил в корень...

6
Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
02.03.2014, 22:27 2
Включение экрана
1
Razangann
12 / 12 / 1
Регистрация: 11.01.2013
Сообщений: 148
02.03.2014, 22:34  [ТС] 3
Не помогло...( все равно активность запускается после разблокировки устройства вручную....
0
Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
02.03.2014, 22:41 4
Через wakelock и disableKeyguard тоже не работает ?
0
Razangann
12 / 12 / 1
Регистрация: 11.01.2013
Сообщений: 148
02.03.2014, 22:58  [ТС] 5
Через такой wakelock??
Java
1
2
3
4
5
6
7
8
PowerManager pM = (PowerManager)getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wL = pM.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,"whatever");
wL.acquire();
wL.release();
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Добавлено через 3 минуты
А через disableKeyguard не знаю как...там метод newKeyguardLock() устаревший....(
0
Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
02.03.2014, 23:01 6
Цитата Сообщение от Razangann Посмотреть сообщение
режим энергосбережения блокирует запуск активити
точно только активити ? сервис запускается ?
можно попробовать использовать этот класс
https://github.com/commonsguy/cwac-w...ntService.java
0
Razangann
12 / 12 / 1
Регистрация: 11.01.2013
Сообщений: 148
02.03.2014, 23:28  [ТС] 7
Сервис уже запущен...при блокировки он перехватывает событие блокировки и запускает активити, которое зажигает экран...при подключенном кабеле питания все работает нормально, но без него активити как бы запускается при ручной разблокировки телефона...((
Сейчас попробую этот класс...)

Добавлено через 2 минуты
Ох...мне тут наверное не разобраться)))))))))

Добавлено через 19 минут
Оппаа)) странный эффект) Сначала тестил на Lenovo s820 - не работало...теперь поставил на Galaxy Note 2, там работает....) на Lenovo стоит менеджер энергосбережения, скорее всего он блочит....)

Добавлено через 1 минуту
Можете еще посоветовать, как выключить экран?))) флага FLAG_TURN_SCREEN_OFF нету ведь))))
0
02.03.2014, 23:28
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2014, 23:28

Как поставить запрет на выполнение программы в домашней базовой версии?
в своей делаю gpedit.msc, а в домашней нет, очень нужно, дети на уроке информатики играются в кс%-)

Запрет на выполнение кода, если он только что был выполнен
Как запретить на некоторое время выполнение блока кода, если он только что был выполнен?

Запрет за выполнение exe и bat файлов кроме разрешонных папок
Приветствую! Не знаю куда запостить тут разделов очень много не есть гуд. Собственно как можно в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.