在Android中阅读最新收到的短信
我看到了这个问题的副本。在所有问题中,他们指定阅读收件箱中的所有短信 我想要的只是阅读最新收到的短信在Android中阅读最新收到的短信,android,sms,Android,Sms,我看到了这个问题的副本。在所有问题中,他们指定阅读收件箱中的所有短信 我想要的只是阅读最新收到的短信 Object[] pdus = (Object[]) bundle.get("pdus"); msgs = new SmsMessage[pdus.length]; for (int i=0; i < msgs.length; i++) { // Convert Object array msgs[i] = SmsMess
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i=0; i < msgs.length; i++) {
// Convert Object array
msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
// Sender's phone number
str += "SMS from " + msgs[i].getOriginatingAddress() + " : ";
// Fetch the text message
str += msgs[i].getMessageBody().toString();
str += "\n";
}
二,
问题1:在上述两个代码中,哪一个会给我最新消息,获取PDU[0](1)或PDU[msg.length-1])(2) 问题2:在我的代码中,我将阅读最新的短信,搜索特定的关键词并执行相应的操作 当我同时收到两条短信时(比如说SMS1和SMS2)。我的关键字出现在SMS1中 首先,SMS1接收,在一秒或两秒之后,SMS2正在接收,因此我怀疑我的代码是否会快速读取SMS1并移动到读取SMS2,或者在收到SMS2时跳过SMS1
请原谅,如果我提供了任何不清楚的地方,请发表评论,希望你能解决我的问题。提前感谢。:) 你的问题很奇怪 您首先给出的代码实际上只能获取一条消息
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i=0; i < msgs.length; i++) {
// Convert Object array
msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
// Sender's phone number
str += "SMS from " + msgs[i].getOriginatingAddress() + " : ";
// Fetch the text message
str += msgs[i].getMessageBody().toString();
str += "\n";
}
Object[]pdus=(Object[])bundle.get(“pdus”);
msgs=新SMS消息[PDU.length];
对于(int i=0;i
问题1-您必须使用上述代码。它将只获取一封邮件,而不是收件箱中的所有邮件
问题2-它不会跳过
msgs[0] = SmsMessage.createFromPdu((byte[]) pdus[msgs.length-1]);
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i=0; i < msgs.length; i++) {
// Convert Object array
msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
// Sender's phone number
str += "SMS from " + msgs[i].getOriginatingAddress() + " : ";
// Fetch the text message
str += msgs[i].getMessageBody().toString();
str += "\n";
}