SMS 수신 관련 코드를 작성중 이해가 잘 가지않는 부분이 있어서요...
제가 초보개발자라 이해가 잘안되네요 ㅠ
코드내용은 책과 블로그를 참조해서 작성해 보았습니다.
빨간 색으로 표시된 부분이 이해가 잘 안되는데 설명좀 부탁드릴겠습니다.
그리고 코드상 문제점이나 수정할 점이 있으면 조언도 부탁요^^
public class smsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
//pdus는 메세지의 규격
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
if (bundle != null) {
StringBuffer buffer = new StringBuffer();
for (int i=0; i<msgs.length; i++){
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
buffer.append(msgs[i].getOriginatingAddress());
buffer.append(":");
buffer.append(msgs[i].getMessageBody().toString());
buffer.append("\n");
}
//토스트 메시지
Toast.makeText(context, buffer.toString(), Toast.LENGTH_SHORT).show();
}
}
}




심플하게 설명하면 전송받은 데이터(msgs[])에서 원하는 발신자 연락처와 메시지 내용만을 스트링 버퍼에 집어넣는거라고 보면되겠죠.
가져온 msgs[]배열에서 .get을 통해 원하는 값만 빼서 append로 buffer에 넣는겁니다.
위결과 출력은 "발신자번호 : 메시지내용" 이 나오게 됩니다.
해당 내용은 하단 토스트로 buffer.toString()을 통해 String으로 형변환해서 토스트로 내보내고요.
데이터 수정편집을 원하시면 위의 for문을 통해 받은 데이터에서 buffer에다 append하는 부분을 수정하시면 됩니다.