Как работают приложения "блокировка приложений" для Android?
Я пробовал поискать в Google, а также смотрел на stackru, но не могу найти удовлетворительного ответа о том, как работают приложения "Блокировка приложений" (например, ZDBox, App Lock и т. Д.). Есть ли служба, которая работает в фоновом режиме, постоянно опрашивая, чтобы увидеть, запущено ли приложение и пытается ли его убить? Или есть способ перехватить намерения запуска для новых действий?
3 ответа
В фоновом режиме работает служба для чтения стека активности. если найдете новую активность, запустите пароль
Они смотрят выход logcat. всякий раз, когда вы начинаете деятельность, вы можете найти конкретную logcat. как это,
I/ActivityManager( 585): Starting activity: Intent { action=android.intent.action...}
если этот logcat напечатан заблокированным приложением, сервис шкафчиков запускает экран пароля.
БОЛЕЕ СОВРЕМЕННЫЙ ОТВЕТ (ноябрь 2022 г.):
Это может быть обработано новым API использования приложений.
Система собирает данные об использовании для каждого приложения, агрегируя данные за ежедневные, еженедельные, месячные и годовые интервалы. Максимальный срок, в течение которого система хранит эти данные, следующий:
Ежедневные данные: 7 дней Еженедельные данные: 4 недели Месячные данные: 6 месяцев Годовые данные: 2 года Для каждого приложения система записывает следующие данные:
Последний раз, когда приложение использовалось
Общая продолжительность времени, в течение которого приложение находилось на переднем плане за этот временной интервал (по > дням, неделям, месяцам или годам).
Захват метки времени, когда компонент (идентифицируемый по имени пакета и активности) ?> перемещается на передний план или фон в течение дня
Захват метки времени при изменении конфигурации устройства (например, при изменении ориентации устройства из-за поворота)
Фоновую службу можно использовать для постоянного наблюдения за обновлениями временных меток для определенных приложений относительно того, когда они переместились на передний план с помощью API, описанного выше.
примечание: кажется, что начиная с Android 5/6/7 и выше вы не можете читать информацию о других приложениях, включая их статус и журналы. Я считаю, что из-за этого поиск в logcat больше не работает. Если кто-то может подтвердить это, пожалуйста, прокомментируйте ниже! Кроме того, функция getRunningTasks для просмотра активных действий теперь устарела.