通过电话停止应用进程?

时间:2015-11-10 05:46:11

标签: java android multithreading loops incoming-call

我有一个播放音频的应用。问题是,当我在与应用程序交互时接到电话时,音频继续播放。这成为一个问题,因为音频使得很难理解这个人说的是什么。 当用户正在通话时是否有任何方法被调用?这样我可以在那里静音我的音频。我已经彻底研究了活动生命周期,但找不到任何可以帮助我解决这个问题的方法。我非常感谢您的所有专家建议。

我试图将此代码放入我的BaseActivity中,后者将被所有其他活动扩展:

PhoneStateListener phoneStateListener = new PhoneStateListener() {
        @Override
        public void onCallStateChanged(int state, String incomingNumber) {
            if (state == TelephonyManager.CALL_STATE_RINGING) {
                //Incoming call: Pause music

                TwentySeconds.stopTimer();
                Intent i = new Intent(BaseActivity.this, FinishedBeforeTimer.class);
                startActivity(i);

                Toast.makeText(BaseActivity.this, "INCOMING CALL", Toast.LENGTH_SHORT).show();

            } else if(state == TelephonyManager.CALL_STATE_IDLE) {
                //Not in call: Play music
            } else if(state == TelephonyManager.CALL_STATE_OFFHOOK) {
                //A call is dialing, active or on hold

                TwentySeconds.stopTimer();
                Intent i = new Intent(BaseActivity.this, FinishedBeforeTimer.class);
                startActivity(i);

                Toast.makeText(BaseActivity.this, "DIALING", Toast.LENGTH_SHORT).show();
            }

然而最奇怪的事情发生了。当我拨打我的电话时,我打电话的电话说我无法拨打电话。我对现在该做什么很困惑,我非常感谢你的时间。

谢谢,

0 个答案:

没有答案