일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 영어메일
- Intent
- e-mailwriting
- 트럼프
- 파이썬
- Java
- 어학·외국어
- 네마녀의날
- 다우산업
- 셀트리온
- englishwriting
- 나스닥
- 사드보복완화
- android
- 시황
- LG전자
- 화승엔터프라이즈
- Python
- 안드로이드
- 국제유가
- ruby
- 영어메일쓰기
- 다우
- 주식시황
- 토익이메일
- 무역전쟁
- toeice-mail
- S&P
- 금리인상
- dataframe
- Today
- Total
Developer MJ Story
[Android/SMS] Android에서 code로 SMS 보내고 받기 본문
- Code level에서 SMS를 보내는 일은 거이 없기 때문에 다들 관심이 없을 것이다. 하지만 간혹 쓸일이 있을 지도 모른일아닌가?
- 게다가 매우~~~ 간단하니 일단 정리!
- Source Code
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(PhoneNumber, null, Message, null, null);
- 위와 같이 써 넣으면 SMS 메시지를 전송할 수 있음
- sendTextMessage()의 형태
- void android.telephony.SmsManager.sendTextMessage(String destinationAddress, String scAddress, String Text, pendingIntent sentIntent, PendingIntent deliveryIntent);
- 위의 source code처럼 sendTextMessage()의 인자로 목적지 주소와 text만 할당하여 전송가능
- null 처리한 인자는 상대 디바이스가 해당 문자를 받았는지 확인 하기 위해 사용하는 인자들임
- SMS를 수신하는 부분도 복잡하지 않음
- Broadcast Receiver에 SMSReceiver를 등록하고 처리 하면 끝~!
- Source Code
private BroadcastReceiver SMSReceiver = new BroadcastReceiver() {
@Override
publicvoid onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
if(extras == null) return;
Object[] pdus = (Object[])extras.get("pdus");
if(pdus == null) return;
SmsMessage[] msgs = new SmsMessage[pdus.length];
for(int i = 0; i<pdus.length;i++){
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
String number = msgs[i].getOriginatingAddress();
String message = msgs[i].getDisplayMessageBody().toString();
if(message.contains(FNParam.MASTER_SERVICE_REQUEST)){
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(PhoneNumber, null, Message, null, null);
}
Toast.makeText(context, "Number : "+number+"\r\nMessage : "+message, Toast.LENGTH_SHORT).show();
}
}
};
privatevoid registerSMSReceiver(){
IntentFilter filter = new IntentFilter(FNParam.ACTION_SMS_RECEIVED);
registerReceiver(SMSReceiver, filter);
}
privatevoid unregisterSMSReceiver(){
unregisterReceiver(SMSReceiver);
}
- 'PDUS'는 Android 내부에 정의된 것으로 왜? 이거지? 라고 생각하지 말고 그냥 저렇게 써야함.
- registerSMSReceiver()를 onCreate()에 등록하고, unregisterSMSReceiver()를 onDestroy() 등록해서 Activity가 실행되면, Broadcast Receiver에 등록시키고, Activity가 destroy 되면 해제 시킴
'Software > Android' 카테고리의 다른 글
[Android/Java] StringTokenizer를 이용한 String 나누기 (0) | 2014.06.09 |
---|---|
[Android/Intent] Broadcast Receiver(activity와 다른 class)에서 intent로 Activity call하기 (0) | 2014.06.09 |
[Andorid/Intent] Intent로 Android check box 주소록 call 하고 선택한 주소 return 받기 (1) | 2014.06.09 |
[Android/Java] colon(:)을 이용한 Enhanced for loop (0) | 2014.06.09 |
[Android/Thread] runnable()을 이용한 간단한 thread 구현 (0) | 2014.06.09 |