Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android-如何在api 21中使用TextToSpeech_Android_Text To Speech - Fatal编程技术网

android-如何在api 21中使用TextToSpeech

android-如何在api 21中使用TextToSpeech,android,text-to-speech,Android,Text To Speech,但是函数speak(字符串文本、int-queueMode、HashMap-params)在API级别21中被弃用。如何解决此问题?是的,您是正确的,它已被弃用,直到您使用的API 21: public class MainActivity extends AppCompatActivity implements TextToSpeech.OnInitListener { private TextToSpeech tts; @Override protected void

但是函数
speak(字符串文本、int-queueMode、HashMap-params)
在API级别21中被弃用。如何解决此问题?

是的,您是正确的,它已被弃用,直到您使用的API 21

public class MainActivity extends AppCompatActivity implements TextToSpeech.OnInitListener {
    private TextToSpeech tts;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        tts = new TextToSpeech(this,this);

        TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

        PhoneStateListener callStateListener = new PhoneStateListener() {
            public void onCallStateChanged(int state, String incomingNumber) {

                if(state== TelephonyManager.CALL_STATE_RINGING ){
                    tts.speak(incomingNumber+" calling", TextToSpeech.QUEUE_FLUSH, null);
                    Toast.makeText(getApplicationContext(),"Phone is Ringing : "+incomingNumber,Toast.LENGTH_LONG).show();
                }
            }
        };
    }

    @Override
    public void onInit(int status) {

    }
}
只需将
null
传递给
utteranceId
参数


更多关于

为什么有人应该努力发布到stackoverflow以传递null的信息?第三个参数具有重要意义。。正确的?
public int speak (String text, int queueMode, HashMap<String, String> params)
...    
tts.speak(incomingNumber+" calling", TextToSpeech.QUEUE_FLUSH, null, null);