Android 收件箱短信异地接收
Android Inbox SMS receiving in different parts
我正在开发一个 android 应用程序,它在接收到广播接收器时使用它获取 SMS。这是代码:
if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) {
Bundle bundle = intent.getExtras();
SmsMessage[] msgs;
if (bundle != null) {
//---retrieve the SMS message received---
try {
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for(int i=0; i<msgs.length; i++) {
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
String address = msgs[i].getOriginatingAddress();
String body = msgs[i].getMessageBody();
}
} catch(Exception e) {
Log.d("Exception caught",e.getMessage());
}
}
}
问题是我收到的消息很少分为两部分或三部分。我不知道如何加入消息的这些部分。如何检测消息的第一部分需要与下一部分消息组合。
第一部分:Your airtel mobile ********** online recharge txn ID ************ o
第二部分:f Rs *** has been initiated. Please keep the txn id for future refe
第三部分:rence.
您需要添加邮件正文(部分)。
改变这个
String body = msgs[i].getMessageBody();
到
String body += msgs[i].getMessageBody();
问题出在你的循环中试试这个,你应该没问题
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String str = "";
if (bundle != null) {
// Retrieve the SMS Messages received
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
// For every SMS message received
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";
}
// Display the entire SMS Message
Log.d(TAG, str);
}
我正在开发一个 android 应用程序,它在接收到广播接收器时使用它获取 SMS。这是代码:
if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) {
Bundle bundle = intent.getExtras();
SmsMessage[] msgs;
if (bundle != null) {
//---retrieve the SMS message received---
try {
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for(int i=0; i<msgs.length; i++) {
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
String address = msgs[i].getOriginatingAddress();
String body = msgs[i].getMessageBody();
}
} catch(Exception e) {
Log.d("Exception caught",e.getMessage());
}
}
}
问题是我收到的消息很少分为两部分或三部分。我不知道如何加入消息的这些部分。如何检测消息的第一部分需要与下一部分消息组合。
第一部分:Your airtel mobile ********** online recharge txn ID ************ o
第二部分:f Rs *** has been initiated. Please keep the txn id for future refe
第三部分:rence.
您需要添加邮件正文(部分)。 改变这个
String body = msgs[i].getMessageBody();
到
String body += msgs[i].getMessageBody();
问题出在你的循环中试试这个,你应该没问题
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String str = "";
if (bundle != null) {
// Retrieve the SMS Messages received
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
// For every SMS message received
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";
}
// Display the entire SMS Message
Log.d(TAG, str);
}