아래는 message를 수신받기 위해 코딩한 소스입니다.
sms 메시지 받는법을 검색하면 대부분 이렇게 처리하라고 얘기해주는데요,
물론 저도 다 잘됐는데 이상하게 skt 유심인 폰에서 skt유심인 폰한테 메시지를 보내면 null로 오는데
이유가 뭔지 알수가 없습니다. 메시지는 getMessageBody 함수를 통해서 가져오고 있습니다.
특이사항은 메시지를 서로 전달할때 AES128 클래스를 이용해서 ascii코드형태로 변환해서 메시지를 보냅니다.
skt에서만 이러한 문자열을 따로 처리해서 null로 받는건지 궁금합니다.
댓글 꼭좀 부탁드립니다.
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
SmsMessage[] messages = new SmsMessage[pdus.length];
for (int i = 0; i < pdus.length; i++) {
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
LogMgr.d(LogMgr.TAG, "SMSReceiver message : " + messages[i].getDisplayMessageBody());
}
SmsMessage sms = messages[0];
phoneNumber = sms.getDisplayOriginatingAddress();
try {
if (messages.length == 1 || sms.isReplace()) {
phoneNumber = sms.getDisplayOriginatingAddress();
message = sms.getDisplayMessageBody();
} else {
StringBuilder bodyText = new StringBuilder();
for (int i = 0; i < messages.length; i++) {
bodyText.append(messages[i].getMessageBody());
}
message = bodyText.toString();
}
} catch (NullPointerException e){
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}