gpt4 book ai didi

安卓 O : PHONE_STATE broadcast limitation

转载 作者:IT老高 更新时间:2023-10-28 21:41:29 25 4
gpt4 key购买 nike

我一直在尝试做类似于 truecaller 应用程序的事情,我的应用程序应该在通话挂断后显示一个屏幕。通过在 manifest 文件中注册 android.intent.action.PHONE_STATE 隐式广播来实现此目的。

但是,如果我将应用程序更改为针对 Android O,它将无法正常工作,因为 Android O broadcast limitation ,我正在尝试找出这个用例的替代解决方案。

android 文档中建议的替代解决方案:Job scheduler 或使用 context 注册 service

Job scheduler:由于 Job scheduler 优化,接收回调会有一些延迟。因此,如果我们的应用程序屏幕在通话后几分钟显示并且每隔几秒轮询检查新的通话记录会导调用池消耗问题,这将影响用户体验。

在 Java 中使用上下文注册服务:我希望即使应用程序不活动或不活动,该行为也能正常工作。如果系统终止 Service,这将不起作用。

注册前台服务:这需要一直向用户显示通知,这对用户来说是垃圾邮件,并且 24/7 全天候运行服务会消耗大量资源,这会破坏广播限制的全部目的。

请提出替代解决方案,以便用户体验保持不变。

提前致谢

最佳答案

最终,该操作已添加到“隐式广播异常”列表中,因此您可以将 ACTION_PHONE_STATE_CHANGED 添加到您的 list 中,它会起作用:

https://developer.android.com/guide/components/broadcast-exceptions

ACTION_CARRIER_CONFIG_CHANGED,TelephonyIntents.ACTION_*_SUBSCRIPTION_CHANGED,"TelephonyIntents.SECRET_CODE_ACTION", ACTION_PHONE_STATE_CHANGED,ACTION_PHONE_ACCOUNT_REGISTERED, ACTION_PHONE_ACCOUNT_UNREGISTERED

OEMtelephony apps may need to receive these broadcasts.

关于安卓 O : PHONE_STATE broadcast limitation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45716904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com