본문 바로가기

프로그래밍/Android

리시버를 통한 sms데이터 가져오기

 

SMS 가져오기

 

브로드캐스트 리시버를 생성하고, android.provider.Telephony.SMS_RECEIVED 액션을 사용한다.

 

manifest.xml 에 리시버 설정

<application ..>

..

..

<receiver android:name="ReceiverClassName" android:enabled="true">

<intent-filter>

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

<category android:name="android.intent.category.DEFAULT"/>

</intent-filter>

</receiver>

</application>

 

퍼미션 추가

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

 

Intent 메시지에 extra 추가된 데이터중 pdus sms 리스트가 들어온다.

해당 오브젝트 배열을 얻고, SmsMessage.createFromPdu() 메쏘드를 사용해

SmsMessage를 얻는다.

 

 

콜백 구현

@override

public void onReceive( Context context, Intent intent ) {

if( intent.getAction().equals( "android.provider.Telephony.SMS_RECEIVED" ) ) {

Bundle bundle = intent.getExtras();

if(bundle == null){

return;

}else{

Object[] pdusObj = (Object[])bundle.get("pdus");

if(pdusObj == null){

return;

}

                

// 오브젝트 수만큼 메시지 객체 생성

SmsMessage[] messages = new SmsMessage[pdusObj.length];

// 해당 갯수만큼 루프를 돌며 sms 메시지 객체로 변환

for(int i = 0 ; i < messages.length ; i++){

messages[i] = SmsMessage.createFromPdu((byte[])pdusObj[i]);

}

}

'프로그래밍 > Android' 카테고리의 다른 글

TextButton 만들기  (0) 2009.11.22
버튼 상태에 따른 배경변경  (0) 2009.11.22
에니메이션 처리하기  (0) 2009.11.19
투명한 레이아웃 만들기  (0) 2009.11.18
메시지 핸들러 사용하기  (0) 2009.11.16
Broadcast/BroadcastReceiver  (0) 2009.11.11
AlarmManger 사용  (0) 2009.11.10
AsyncTask 이해하기  (0) 2009.11.09
테마설정하기  (0) 2009.11.09
타이틀바 없애기  (0) 2009.11.09