TTS读出收到的短信,如果短信超过正常160个字符 - 将停止

时间:2011-02-23 13:31:26

标签: android sms text-to-speech

如标题所示。让TTS读出收到的消息。但是如果消息超过160个字符,它将不会读取其余的(我假设在技术上是第二个文本,由网络提供商链接到一个“大”消息)如何修改我的代码,以便如果短信大于标准的单个消息,我可以全部读出来吗? 这是我的代码片段

public void onReceive(Context context, Intent intent) 
{
            int n; 
            Bundle bundle = intent.getExtras();
            Object messages[] = (Object[]) bundle.get("pdus");
            SmsMessage smsMessage[] = new SmsMessage[messages.length];
            for (n = 0; n<messages.length; n++){
                    smsMessage[n] =             SmsMessage.createFromPdu((byte[])messages[n]); 
            }

            String sms1 = smsMessage[0].getMessageBody();       
            /**Send variable to the class handling TTS, to be read out-loud by the corresponding method */

            SpeakerActivity.speakSMS(sms1);

2 个答案:

答案 0 :(得分:1)

示例中数组的每个成员都包含160个字符的消息部分。如果消息恰好超过160个字符,虽然Android会在默认的SMS应用程序中将它们拼接在一起,但它们将在数组中以部分形式表示。您需要遍历该数组以查找每条长消息的其他部分。

答案 1 :(得分:0)

smsMessage [1] .getMessageBody(); smsMessage [2] .getMessageBody(); 等等包含短信的“休息”。解决。