0

我已经构建了一个监听背景噪音的应用程序。我发现,在收听时,用户无法拨打电话或使用任何其他录制音频的应用程序。我想知道是否有一种方法可以在通话之前同时允许录制音频或显式禁用声音?这将如何实现?

4

2 回答 2

1

不。

诸如录制音频之类的事情不能同时使用两个应用程序完成(在遵守 Google Play 指南的情况下)。这意味着您必须监听另一个应用程序MediaRecorder何时需要,或者何时将电话意图发送到操作系统,然后释放它。您也可以只听设备呼叫状态。

您可以使用TelephonyManager来监听:

public class PhoneListener extends PhoneStateListener {
    private Context context;

    public PhoneListener(Context c) {
        context = c;
    }

    public void onCallStateChanged (int state, String incomingNumber) {
        switch (state) {
            case TelephonyManager.CALL_STATE_IDLE:
                break;
            case TelephonyManager.CALL_STATE_RINGING:
                break;
            case TelephonyManager.CALL_STATE_OFFHOOK:
                break;
        }
    }
}

您应该查看更多详细信息: https ://stackoverflow.com/a/15564021/4167644

于 2017-01-17T02:23:24.503 回答
0

您可以尝试在调用时关闭应用程序,或者使用一个激活睡眠一段时间的按钮:

睡眠代码片段: public void run() { try { Thread.sleep(300000); // 代码 } catch (Exception e) { e.getLocalizedMessage(); } }

于 2017-01-17T00:41:44.333 回答