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

电话监听器特定免打扰逻辑实现咨询及代码验证

实现免打扰随电话状态自动切换的电话监听器

最近我开发了一款电话监听器(Phone Listener),它能识别电话的**ringing(响铃)和idle(空闲)**两种状态,核心实现了以下逻辑:

  • 当**Do Not Disturb(免打扰)**未开启时:电话响铃时自动打开免打扰,电话停止响铃回到空闲状态后,自动关闭免打扰
  • 当免打扰已经开启时:不执行任何操作

目前实际运行完全符合预期,尤其是电话停止响铃时,免打扰会自动关闭这一点表现得很稳定。

以下是核心代码片段:

// 假设已提前初始化NotificationManager和用于记录免打扰初始状态的变量wasDoNotDisturbEnabled
switch (state) {
    case CALL_STATE_RINGING:
        assert notificationManager != null;
        // 检查当前免打扰是否未开启
        if (notificationManager.getCurrentInterruptionFilter() != NotificationManager.INTERRUPTION_FILTER_NONE) {
            // 开启免打扰模式
            notificationManager.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_NONE);
            // 标记初始状态为未开启,方便后续恢复
            wasDoNotDisturbEnabled = false;
        } else {
            // 免打扰已开启,记录状态
            wasDoNotDisturbEnabled = true;
        }
        break;
    case CALL_STATE_IDLE:
        assert notificationManager != null;
        // 如果之前是因为电话响铃才开启的免打扰,现在恢复原状
        if (!wasDoNotDisturbEnabled) {
            notificationManager.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_ALL);
        }
        break;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:35:24