如何在来电和去电时停止发送文字语音?

时间:2018-03-12 07:06:37

标签: android

我希望在Android上的传入和传出呼叫中停止发送文字语音。请在下面找到我的代码。它在某些设备上运行良好,但在某些设备中,语音在后台讲话。它根本没有停止。 请告诉我代码级别的任何问题。请帮帮我。

提前致谢。

public class TeleListener extends PhoneStateListener {
    public void onCallStateChanged(int state, String incomingNumber) {
        try{
            TextToSpeech ttsObj=Text2SpeechBean.getTTSObject();
            switch (state) {
            case TelephonyManager.CALL_STATE_IDLE:
                break;
            case TelephonyManager.CALL_STATE_OFFHOOK:
                // CALL_STATE_OFFHOOK;
                ttsObj.shutdown();
                break;
            case TelephonyManager.CALL_STATE_RINGING:
                // CALL_STATE_RINGING
                ttsObj.shutdown();  
                break;
            }

        }catch(Exception e)
        {
            System.out.println("Exception ::onCallStateChanged::"+e);
        }

    }


}

1 个答案:

答案 0 :(得分:1)

您可以在onStart()中初始化tts,并在onStop()中调用shutdown() 您应该可以在TextToSpeech.stop()中致电TextToSpeech.shutdown()onPause()并使其发挥作用。停止失败可能有多种原因,如果确实如此,那么你就是运气不好。这适用于6种不同型号的Android设备。

@Override
    protected void onStop()
    {
        super.onStop();
        if(ttsObj!= null){
            ttsObj.shutdown();
        }       
    }

希望它能帮到你!!