You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lenovo K8 Note升级Android Oreo后无法接收ACTION_NEW_OUTGOING_CALL广播

解决Android Oreo下ACTION_NEW_OUTGOING_CALL广播接收器失效的问题

兄弟,你踩中了Android 8.0(API 26)引入的隐式广播限制坑!从Oreo开始,系统一刀切禁止了大部分隐式广播的静态注册接收器,ACTION_NEW_OUTGOING_CALL正好在受限名单里,而ACTION_PHONE_STATE_CHANGED是少数例外,所以你的接收器能正常抓电话状态变化,却收不到呼出电话的广播。

给你整理好修复步骤,照着来就行:

  • 先清掉清单里的静态注册
    把你之前在Manifest里写的针对ACTION_NEW_OUTGOING_CALL的接收器注册删掉或者注释掉,比如这段:

    <!-- 这个静态注册在Oreo及以上彻底失效,留着没用 -->
    <!-- <receiver android:name=".YourOutgoingCallReceiver">
        <intent-filter>
            <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
        </intent-filter>
    </receiver> -->
    
  • 改用动态注册接收器
    找个合适的地方(比如你应用的主Activity,或者前台Service里)动态注册接收器,这样才能在Oreo及以上系统正常收到广播。举个Activity里的例子:

    private YourOutgoingCallReceiver outgoingReceiver;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        // 实例化你的接收器
        outgoingReceiver = new YourOutgoingCallReceiver();
        
        // 配置意图过滤器,指定要监听的广播
        IntentFilter callFilter = new IntentFilter();
        callFilter.addAction(Intent.ACTION_NEW_OUTGOING_CALL);
        
        // 注册接收器
        registerReceiver(outgoingReceiver, callFilter);
    }
    
    @Override
    protected void onDestroy() {
        super.onDestroy();
        // 一定要记得注销!不然会内存泄漏
        if (outgoingReceiver != null) {
            unregisterReceiver(outgoingReceiver);
        }
    }
    
  • 最后再确认权限没问题
    虽然你说已经申请了权限,但还是再核对下Manifest里的声明,别写错了:

    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
    

    提醒下:这个权限是正常权限,从Android 6.0开始不需要动态申请,清单声明就够了,所以只要拼写正确就没问题。

另外要注意:动态注册的接收器只有在注册它的组件(比如上面的Activity)活着的时候才能干活。如果你的应用需要后台也监听呼出电话,就得结合前台Service来保持注册状态——不过后台搞事情要遵守Android的后台规则,别被系统一键杀了哈。

内容的提问来源于stack exchange,提问作者Orange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:42:41