본문 바로가기

JAVA/Android

안드로이드 BroadcastReceiver를 이용한 문자 메시지 받기 예제 따라하기

- BroadcastReceiver를 이용하면 안드로이드에서 발생하는 신호를 받아 일을 처리 할 수 있게 된다.
- 이번 예제는 그 BroadcastReceiver로 SMS 신호를 받아 Toast로 띄우는 예제이다.

-Java 소스 
public class BR extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Log.d("MY_TAG", "BroadcastReceiver onReceive()");
if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){
String sb = "";
Bundle bundle = intent.getExtras();
if(bundle != null){
Object[] pdusObj = (Object[]) bundle.get("pdus");
SmsMessage[] messages = new SmsMessage[pdusObj.length];
for(int i = 0; i<pdusObj.length; i++){
messages[i] = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
}
for(SmsMessage currentMessage : messages){
sb = sb + "문자열 수신되었습니다.\n";
sb = sb + "[발신자전화번호].\n";
sb = sb + currentMessage.getOriginatingAddress();
sb = sb + "\n[수신메세지]\n";
sb = sb + currentMessage.getMessageBody();

}
}
Toast.makeText(context, sb, Toast.LENGTH_LONG).show();
}
}

}