Начать мою деятельность, когда пользователь запускает некоторые выбранные приложения - PullRequest
0 голосов
/ 24 августа 2018

Я работаю над приложением типа Locker.Мое требование - открыть экран пароля, когда пользователь идет для запуска определенных приложений (которые были выбраны пользователем ранее в моем приложении). Я показываю пользователю список всех приложений с кнопкой переключения, чтобы заблокировать / разблокировать.Я сохраняю настройки пользователя в локальной базе данных sqlite.

Основная проблема заключается в том, как получить уведомление, когда пользователь запускает одно из этих приложений.

Я прошел это , это , это , это и многие другие смутные сообщения уже.

Итак, теперь нам нужны системные привилегии для всех 3 из этих разрешений:

<uses-permission android:name="android.permission.GET_TOP_ACTIVITY_INFO"/>
<uses-permission
    android:name="android.permission.PACKAGE_USAGE_STATS"
    tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.READ_LOGS"/>

Я не могусделать мое приложение системное приложение.Он должен вести себя как обычное пользовательское приложение.Так что эта опция бесполезна.

Вопрос: есть ли другая опция, позволяющая сделать это без привилегированного приложения с привилегированным устройством или системой?Если да, пожалуйста, дайте мне несколько рекомендаций, которым я могу следовать.

1 Ответ

0 голосов
/ 24 августа 2018

Должно быть возможно построить что-то подобное, используя функции AccessibilityService. Вам нужно будет зарегистрировать свое приложение как AccessibilityService, и вы будете уведомлены обо всех событиях. Вы можете реагировать на события «содержимое окна изменено» или «состояние окна изменено», а затем запросить платформу Android, чтобы получить информацию о том, какое окно изменилось и к какому приложению принадлежит окно, и реагировать соответствующим образом. Это, вероятно, большая работа и, вероятно, много проб и ошибок, чтобы заставить ее делать то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...