这是我的代码
public class SmsReceiver extends BroadcastReceiver {
private static final String PDUS = "pdus";
@Override
public void onReceive(Context context, Intent intent) {
Object[] pdus = (Object[]) bundle.get(PDUS);
return SmsMessage.createFromPdu((byte[]) pdus[0]);
}
}
短信的原文:
更糟糕的是,mailparser似乎采用了一个非常简单的单部分测试电子邮件,但除了1.1,text / plain
通过调用方法message.getMessageBody()
或getDisplayMessageBody()
获得的文字:
更糟糕的是,mailparser似乎采取了一个非常简单的单部分测试
我做错了什么?
P.S。环聊会返回完整的消息
答案 0 :(得分:1)
试试这个
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
String sender = "", receivedMessage = "";
String MSG_TYPE = intent.getAction();
if (MSG_TYPE.equals("android.provider.Telephony.SMS_RECEIVED")) {
Object[] pdus = (Object[]) extras.get("pdus");
for (int i = 0; i < pdus.length; i++) {
SmsMessage SMessage = SmsMessage
.createFromPdu((byte[]) pdus[i]);
sender = SMessage.getOriginatingAddress();
receivedMessage += SMessage.getMessageBody().toString();
}
}
}
答案 1 :(得分:1)
SMS通常由许多pdus组成,因此您需要这样的代码:
retMsgs = new SmsMessage[pdus.length];
for(int n=0; n < pdus.length; n++) {
byte[] byteData = (byte[])pdus[n];
retMsgs[n] = SmsMessage.createFromPdu(byteData);
}
然后返回数组。