Проблема, которую вы решаете
Вы хотите, чтобы планшет в машине запускался и выключался автоматически вместе с условиями авто: подали питание, включился Bluetooth, подключился Wi-Fi, появился заряд или сработал другой триггер. Чаще всего в настройках ищут именно «отключить и включить по питанию», потому что вручную нажимать кнопку POWER неудобно. На форумах это прямо описывают как цель: чтобы планшет перестал ждать, пока экран погаснет, или чтобы при подключении питания он сам стартовал и сам выключался. Источник: обсуждение задачи про Tasker и включение/выключение планшета по питанию - https://pajero4x4.ru/bbs/phpBB2/viewtopic.php?t=137847 и варианты сценариев - https://pajero4x4.ru/bbs/phpBB2/viewtopic.php?t=187180
Что нужно заранее
- На планшете установлен Tasker.
- Определитесь с триггером включения.
- Подключение питания
- Подключение Bluetooth (к примеру, к системе в авто)
- Подключение Wi-Fi
- Событие от экрана (экран включен/выключен) как суррогат, если питание отследить сложно
- Определитесь, что именно выключать.
- Выключить экран и дать системе заснуть
- Полностью выключить Android (Shutdown)
- Остановить конкретный фоновой сервис (актуально для некоторых приложений)
Шаг 1. Подключите правильный тип триггера
В Tasker профили строятся по принципу Если событие - То задача. Понятие профиля и задачи описано в справке по Tasker и в руководствах по его использованию. Источник: https://xakep.ru/2014/05/25/tasker-full-using/ (разделы про логику профилей Tasker)
Вариант А. Пуск по подключению питания
Плюс этого варианта: максимально «по-настоящему» совпадает с тем, что вы сделали в авто.
Минус: на разных планшетах корректно различать «подключили к зарядке» и «подключили к компьютеру» может зависеть от реализации, а также от прав и доступности системных состояний. На практике многие используют комбинации из питания и состояния радиомодулей.
На уровне логики обычно делают так:
- если пришло питание - включить нужные функции
- если питание пропало - выключить планшет или хотя бы экран
Вариант Б. Пуск по Bluetooth авто
Эта схема часто надежнее, чем питание, потому что Bluetooth сигнализирует о том, что вы действительно в машине.
Пример подобной связки описан в теме про Tasker и Waze: сначала по Bluetooth включают интернет-расшаривание на телефоне, а затем на машине по событию подключенного Wi-Fi запускают навигацию. Источник: https://geely-club.by/viewtopic.php?t=123
Для вашего сценария аналогично:
- условие включения: Bluetooth подключен (имя устройства авто)
- задача: включить планшет/экран и запустить нужное приложение
- условие выключения: Bluetooth отключен
- задача: остановить сервисы и выключить планшет
Вариант В. Выключение по выключению экрана
Это рабочий обходной путь, если вы не можете стабильно поймать «питание пришло/ушло».
На форуме GEELY Club Belarus описывают сценарий через событие «экран выключен», потом ожидание и затем Shutdown. Источник: https://geely-club.by/viewtopic.php?t=123 (сообщение про ожидание 2 минуты и shutdown)
Шаг 2. Настройте задачу включения
Создайте задачу (Task) «Включить» и добавьте действия по порядку.
Типовой набор:
1. Включить экран (если нужно)
2. Запустить приложение навигации или магнитолы, либо включить нужный сервис
3. При необходимости включить GPS и/или мобильные данные (если ваш сценарий зависит от геолокации)
Если вы хотите выключать и включать не сам планшет, а сервисы внутри конкретного приложения, можно управлять сервисом через Intent, но это актуально не для всех приложений.
Шаг 3. Настройте задачу отключения
Есть два распространенных уровня жесткости.
Уровень 1: мягко выключить (экран/сон)
- действие: погасить экран
- дальше Android сам переведет устройство в экономию
Плюс: безопаснее для устройства.
Минус: «полное выключение» не произойдет.
Уровень 2: жестко выключить (Shutdown)
Если вы реально хотите, чтобы планшет полностью отключался после поездки, используйте системное действие Shutdown.
Пример из обсуждения: профиль по событию «Экран выключен», затем ожидание 2 минуты и действие «Система - перезагрузить - shutdown» (как пишут участники). Источник: https://geely-club.by/viewtopic.php?t=123
Готовые схемы в Tasker (по смыслу)
Ниже таблица, как лучше связать триггер и задачи. Подставьте свои приложения и задержки.
| Что ловим в авто | Условие для включения | Что делаем | Условие для выключения | Что делаем |
|---|---|---|---|---|
| Появилось питание | Состояние питания/заряд подключен | Включить экран, запустить навигацию | Питание пропало | Shutdown или хотя бы погасить экран |
| В машине Bluetooth подключен | BT connected (имя устройства авто) | Запустить нужное приложение/сервис | BT disconnected | Остановить сервисы и Shutdown |
| Подключился Wi-Fi (например, ГУ создало точку) | Wi-Fi connected | Запустить навигатор/интернет-радио | Wi-Fi disconnected | Закрыть приложения и Shutdown |
| Не удалось отследить питание | Экран выключен | Подождать 1-2 минуты | Экран выключен все равно активен | Shutdown |
Про логику «профиль - триггер - задача» и общий подход Tasker хорошо изложено в обзорных материалах по Tasker, которые используют примеры профилей и задач. Источник: https://xakep.ru/2014/05/25/tasker-full-using/
Шаг 4. Если нужно управлять сервисом внутри приложения (Intent)
Для некоторых программ в авто можно не включать/выключать планшет, а запускать/останавливать сервис через Intent.
В материале про «управление по событиям Tasker» приводят пример запуска и остановки сервисного процесса через Intent действия вида com.ivolk.StrelkaGPS.action.START_SERVICE и com.ivolk.StrelkaGPS.action.STOP_SERVICE. Источник: https://ivolk.ru/a120.htm
Общий принцип такой:
- в профиле Tasker создаете событие
- в задаче добавляете действие «Intent»
- указываете Action и нужные поля Package/Class
- делаете симметричные задачи для Start и Stop
Если ваш случай именно про конкретную программу, берите ее документацию по Intent. Если документации нет, чаще проще включать/выключать экран и запускать приложение, а не останавливать сервис.
Шаг 5. Типичные ошибки
- Пытаться выключать сразу в момент отключения питания или сразу при обрыве Bluetooth
- Решение: добавляйте задержку 30-120 секунд, как делают в сценариях с ожиданием перед shutdown. Источник по идее ожидания: https://geely-club.by/viewtopic.php?t=123
- Настроить выключение по «событию экрана», но забыть, что экран гаснет не всегда в момент ухода из авто
- Решение: предпочитайте питание/BT/wi-fi или комбинируйте условия.
- Не проверить, что Tasker имеет нужные разрешения и что фоновые действия не блокируются системой энергосбережения
- Решение: проверьте в настройках батареи исключение для Tasker.
Итог
Самый простой путь - сделать два профиля в Tasker: один включает сценарий при появлении триггера (питание, Bluetooth или Wi-Fi), второй выключает его при исчезновении триггера. Если вы не уверены с питанием, используйте Bluetooth как более стабильный сигнал. Если не получается вообще отследить питание, применяйте обходной вариант через событие «экран выключен», добавляя небольшую паузу перед shutdown. Источники с практическими подходами и примерами таких сценариев: https://pajero4x4.ru/bbs/phpBB2/viewtopic.php?t=137847, https://geely-club.by/viewtopic.php?t=123, и логика Tasker-профилей - https://xakep.ru/2014/05/25/tasker-full-using/