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