Я создаю приложение для Android (код Java) с функцией аудиовызова. Мне удалось заставить его работать с помощью фреймворка webRTC. Я хотел, чтобы мой звуковой вызов вел себя как WhatsApp и Messenger, где эти приложения продолжают звуковой вызов, даже если пользователь останавливает приложение из истории приложений или начинает использовать другое приложение.
Итак, я решил перенести код webRTC из Activity в Foreground Service. My Audio Call Activity обрабатывает пользовательский интерфейс, отображая фотографию друга, имя, таймер вызова ... Поэтому мне пришлось установить связь между моей Activity и моей службой Foreground через привязку и отправку объекта android.os.Message.
При использовании устройств SAMSUNG все работает нормально, если я убью приложение, я смогу вернуться к активности вызова, щелкнув уведомление службы переднего плана, и аудиовызов продолжит работать, пока я не повесю трубку.
Моя проблема возникла, когда я использовал устройство Xiaomi (redmi note7), если я убью приложение, аудиовызов прекратится, потому что моя служба переднего плана будет перезапущена. Даже после включения "Автозапуска" в настройках.
Я искал здесь решение, но все ответы, которые я нашел, не удовлетворили мою потребность, потому что я не могу просто согласиться с перезапуском моей службы. Если я хочу возобновить аудиовызов, мне придется снова перезвонить другу!
Итак, вопрос: как предотвратить перезапуск Foreground Service на устройствах Xiaomi, Huawei, Oppo ...?
Как и в случае с WhatsAPP, Messenger, Instagram и другими.