SMS 수신하기 (브로드캐스트 사용)
java)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | package ghj.com.recvsms; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Build; import android.os.Bundle; import android.telephony.SmsMessage; import android.widget.Toast; /** * Created by gwonhyeogjun on 2017. 6. 6.. */ public class ReceiveSMS extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Bundle bundle = intent.getExtras(); SmsMessage[] msg; String receive = ""; if(bundle!=null){ //pdu 얻기 Object[] pdus = (Object[])bundle.get("pdus"); msg = new SmsMessage[pdus.length]; for(int i=0; i<msg.length; i++){ //PDU로부터 SmsMessage 객체로 변환 if(Build.VERSION.SDK_INT>=23){ msg[i] = SmsMessage.createFromPdu((byte[])pdus[i], "3gpp"); }else{ msg[i] = SmsMessage.createFromPdu((byte[])pdus[i]); } //PDU로부터 전환번호 , 메시지를 반환 receive += msg[i].getOriginatingAddress()+" : "+msg[i].getMessageBody().toString(); } Toast.makeText(context, receive, Toast.LENGTH_SHORT).show(); } } } | cs |
AndroidManifest.xml)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <application> ... <receiver android:name=".ReceiveSMS"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> <action android:name="android.provider.Telephony.WAP_PUSH_RECEIVED" /> </intent-filter> </receiver> </application> <uses-permission android:name="android.permission.SEND_SMS" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> |
결과
'IT > - 프로그래밍' 카테고리의 다른 글
IOS (Swift) SQLite 사용하기1 - 라이브러리 적용 (0) | 2017.10.01 |
---|---|
IOS (swift) 타이머 사용하여 1초마다 1씩 증가하기 (0) | 2017.09.24 |
안드로이드 Api로 SMS 보내기 (1) | 2017.07.28 |
안드로이드 Intent로 SMS, MMS, Mail 보내기 (1) | 2017.07.27 |
HTML5/CSS3 svg 의 텍스트에 링크걸기 (0) | 2017.07.26 |