【问题标题】:How to detect "in call mode" android java如何检测“通话模式”android java
【发布时间】:2017-08-16 08:15:17
【问题描述】:

我正在尝试在我们通话时检测模式。我正在使用最流行的广播和电话管理器示例。
但是只有3个州。

String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
if(state.equals(TelephonyManager.EXTRA_STATE_RINGING)){

}
if (state.equals(TelephonyManager.EXTRA_STATE_OFFHOOK)){

}
if (state.equals(TelephonyManager.EXTRA_STATE_IDLE)){

}

经过一些测试,我发现:

1) 来电时 - 比我看到的状态 = RINGING - 接受来自此状态的呼叫 = OFFHOOK

2) 但是当我拨打电话时 - 状态 = OFFHOOK ,并且当另一侧的另一个“我”接受呼叫时 - 状态仍然 = OFFHOOK。

如何正确检测 IN_CALL_MODE(意思是我在当前时间说话)。 ? 有什么可以帮忙的吗?

【问题讨论】:

    标签: java android telephonymanager phone-call


    【解决方案1】:

    使用 AudioManager 怎么样?

    AudioManager manager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
    if(manager.getMode()==AudioManager.MODE_IN_CALL){
        return true;    // Active call
    }
    else {
        return false;
    }
    

    【讨论】:

    • 实际上它不起作用。不知道我上次是怎么测试的。
    • 这需要手机状态权限吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-18
    • 1970-01-01
    • 2013-10-18
    • 2017-10-19
    相关资源
    最近更新 更多