【发布时间】:2023-10-09 16:18:01
【问题描述】:
我正在创建一个具有音频通话功能的 Android 应用程序(Java 代码)。 我设法使用 webRTC 框架使其工作。 我想让我的音频通话表现得像 WhatsApp 和 Messenger,即使用户从应用历史记录中停止应用或开始使用其他应用,这些应用也会保持音频通话运行。
因此,我决定将 webRTC 代码从 Activity 迁移到 Foreground Service。 我的音频通话活动处理 UI,显示朋友照片、姓名、通话计时器...... 所以我必须通过绑定和发送 android.os.Message 对象在我的 Activity 和我的 Foreground Service 之间进行通信。
使用 SAMSUNG 设备时一切正常,如果我终止应用程序,我可以通过单击前台服务的通知返回呼叫活动,并且音频呼叫会继续工作直到我挂断。
我的问题出现在我使用小米设备(redmi note7)时,如果我杀死应用程序,音频通话停止,导致我的前台服务重新启动。 即使从设置中启用“自动启动”。
我在这里搜索了一个解决方案,但我找到的所有答案都不能满足我的需要,因为我不能只接受我的服务被重新启动。 如果我想恢复语音通话,我必须重新给朋友打电话!
所以,问题是: 如何防止小米、华为、OPPO...设备重启前台服务?
WhatsAPP、Messenger、Instagram 等就是这种情况。
【问题讨论】:
-
查看此link。它解释了如何做才能使您的服务在每个供应商上都保持活力。
-
感谢您的回答。然后,您共享的链接提供了很好的信息,更便于开发人员了解。不幸的是,我找不到我的问题的解决方案。我开始考虑暂时放弃。这些供应商将 WhatsApp、Messenger、Viber 和其他著名应用程序列入白名单。但对于我们的应用来说,这是不可能的。
-
很高兴知道。作为答案发布。
标签: android service webrtc foreground-service webrtc-android