본문 바로가기
프로그래밍/Android

SMS수신 처리

by Mr-후 2018. 11. 2.
반응형

SMS수신 처리




앱에서 SMS발송과 스마트폰에 수신되는 SMS를 수신할 수 있는 방법이다. 


퍼미션 설정. 

<user-permission android:name="android.permission.RECEIVE_SMS" />


브로드캐스트 리시버 등록.

<receiver
    android:name=".SMReceiver"
    android:enabled="true"
    android:exported="true">

<intent-filter>
    <action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>

</receiver>


수신한 SMS데이터를 얻기.

Bundle bundle = intent.getExtras();
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]);  //API Level 23 deprecated 

try {
    String message = new String(messages[i].getMessageBody());
    String phoneNumber = messages[i].getOriginatingAddress();
    //....
} catch (Exception e ) {

e.printStackTrace();

}

}




Extra 데이터로 전달된 데이터를 getExtras()함수를 이용해서 SMS수신 내용을 담고 있는 Bundle객체를 얻은 후 Bundle에서 pdus라는 키 값으로 객체를 얻어 이용하면된다. 

출처: 깡샘의 안드로이드 프로그래밍 중에서 



반응형