Репозиторий:
https ://github.com/amdreallyfast/AndroidStartOnBootExample
Цель:
Я пытаюсь запустить приложение Android при запуске, но не получается.< /p>
Примечание. Я прекрасно понимаю, что этого не следует делать с приложениями, предназначенными для широкой публики. Это не то. На данный момент это всего лишь исследование концепции личного проекта. Более масштабная цель — переделать использованный Pixel 3a и превратить его в домашнее устройство. Я не хочу запускать приложение вручную каждый раз, когда мне нужно его включить, и предпочитаю, чтобы оно запускалось автоматически, поэтому я пытаюсь найти способ запускать приложение при запуске.
Также обратите внимание: поскольку этот проект запускается при загрузке, я не могу использовать отладчик для большей части этой работы, и вместо этого мне приходится полагаться на уведомления для определения прогресса.
< strong>Прогресс:
У меня есть BroadcastReceiver, который реагирует на намерение BOOT_COMPLETED, запуская службу. Функция onCreate(...) службы создает простое намерение запустить другое приложение (на данный момент это только Google Maps, которые легко доступны без установки дополнительного программного обеспечения).
У меня есть также есть MainActivity, простая программа с кнопкой, которая использует намерение запустить ту же службу. Я использую это для сравнения поведения при запуске службы при запуске и запуске службы из уже запущенного действия.
Уже пробовал установить флаг намерения Intent.FLAG_ACTIVITY_NEW_TASK.. p>
Проблема:
Карты Google не запускаются из службы при вызове во время запуска. Я знаю, что код службы правильно настроен для запуска намерения карты, потому что запуск MainActivity и нажатие кнопки запустит службу, а затем нормально запустит Google Maps. Я также знаю, что код, запускаемый при запуске, дошел до момента, когда он запустил намерение карты, потому что уведомления указывают на это.
Единственная разница, которую я замечаю, между неработающим и работающим похоже, это способ запуска службы.
Документация:
Я нашел эту страницу документации по Android: https://developer.android.com/guide/comComponents/ активности/фоновые старты. В нем говорится (частично):
Приложения, работающие на Android 10 или более поздних версиях, могут начать работу только при выполнении одного или нескольких из следующих условий:
- В приложении есть видимое окно, например действие на переднем плане.
Примечание: еще раз , Я не планирую публиковать свое приложение для широкой публики. Это только для меня.
Подробнее здесь: https://stackoverflow.com/questions/718 ... android-11