Foregound Service запускает действие от MainActivity - PullRequest
0 голосов
/ 23 января 2020

Я работаю над Android приложением обнаружения падения. Когда пользователь падает, включается будильник с таймером, и если пользователь не нажимает кнопку «Отмена» в течение 15 секунд, приложение отправляет SMS на контакт. Все работает нормально, когда приложение открыто, но я не знаю, как должен работать мой приоритетный сервис. Можно ли сделать так, чтобы служба переднего плана работала так - после обнаружения падения служба переднего плана открывает приложение и запускает таймер из основного действия?
Код из открытия службы переднего плана MainActivity:

Intent myIntent= new Intent(this, MainActivity.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(myIntent);

1 Ответ

1 голос
/ 23 января 2020

Есть два препятствия для вашего варианта использования:

Во-первых, начиная с Android 10, есть новые ограничения на запуск действия, когда ваше приложение находится в фоновом режиме (и как написано на странице разработчика android, даже с сервисом переднего плана, ваше приложение будет рассматриваться в фоновом режиме, если на переднем плане нет никаких действий). Таким образом, вы не сможете «выдвинуть» представление для пользователя, за исключением случаев, когда вы нацелены на версию <29 (но это не очень рекомендуется). </p>

Во-вторых, с начала 2019 года политика разработчиков Google Play была обновлена ​​, и вы больше не можете использовать разрешение SEND_SMS, если только вы не можете подтвердить в консоли publi sh, что Ваше приложение является обработчиком SMS, и вам потребуется, чтобы пользователь зарегистрировал его как приложение по умолчанию. Таким образом, вы не сможете отправить автоматическое текстовое сообщение c напрямую.

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

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