如标题所示。让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);
答案 0 :(得分:1)
示例中数组的每个成员都包含160个字符的消息部分。如果消息恰好超过160个字符,虽然Android会在默认的SMS应用程序中将它们拼接在一起,但它们将在数组中以部分形式表示。您需要遍历该数组以查找每条长消息的其他部分。
答案 1 :(得分:0)
smsMessage [1] .getMessageBody(); smsMessage [2] .getMessageBody(); 等等包含短信的“休息”。解决。