일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 안드로이드 바로가기
- 노티피케이션 익스텐션
- swift 문자
- 앱 백그라운드 푸시 데이터 저장
- 안드로이드 에러
- FlutterView MethodChannel
- 안드로이드 FCM
- swift autolayout
- Swift flutterview
- 스위프트 UserDefaults
- native flutter view
- silent push
- NotificationService Extension
- Flutter NativeView
- flutter 회전
- swift sms
- 스위프트 앨범
- 스위프트 푸시
- Swift flutterviewcontroller
- 안드로이드 숏컷
- 플러터 뷰 컨트롤러
- 스위프트 테이블 뷰 셀
- 스위프트
- flutter rotate
- Flutter UIKitView MethodChannel
- 스위프트 카메라
- 앱 꺼졌을 때 푸시 데이터 저장
- 스위프트 웹뷰
- 푸시 데이터 저장
- 안드로이드 앨범
- Today
- Total
Things take time
[Android] 문자 수신 처리 (브로드캐스트 리시버, BroadcastReceiver) 2 : 동적 리시버 본문
[브로드캐스트 리시버]
안드로이드 4대 컴포넌트 중 하나, 문자 수신이나 배터리 상태, 디바이스 on/off에 대한 이벤트를 감지하여 처리할 수 있다.
[정적 vs 동적]
정적 리시버 : 일반적으로 매니페스트에 등록하고, 등록한 내용을 바탕으로 BroadcastReceiver를 상속받는 클래스를 사용한다.
동적 리시버 : 매니페스트나 다른 클래스를 생성할 필요 없이, 필요한 부분에서 직접 브로드캐스트리시버 클래스 객체를 생성하여 사용한다.
[사용 이유]
회원 가입 과정에서 문자 수신시, 해당 인증 문자를 자동적으로 입력해주는 함수가 있었으나(정적), 해당 소스를 또 다른 패키지명에서 똑같이 사용할 경우, 동일하게 세팅된 앱이 모두 실행되어 앱이 죽는 현상 발생
로직 : 회원 가입 시, 문자 발송 클릭하면 브로드캐스트 리시버를 등록한다 -> 문자가 발송된다 -> 처리 -> 처리 과정이 완료되면 브로드캐스트 리시버를 해제한다.
public void initReceiver(){ IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction("android.provider.Telephony.SMS_RECEIVED"); receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { Log.i("onReceive", "call"); } }; mContext.registerReceiver(receiver, intentFilter); } public void closeReceiver(){ mContext.unregisterReceiver(receiver); }
정적 리시버의 경우 매니페스트에 name을 통해 클래스 이름을, intent-filter를 통해 원하는 액션을 기록한다. 이 것을 코드화 시킨 것이 위의 소스
(물론 READ_SMS, RECEIVE_SMS, INTERNET 권한은 기본적으로 했음을 가정한다)
'Android(기능)' 카테고리의 다른 글
[Android] 카메라 사진 찍기 및 앨범에서 사진 가져오기, 크롭(Crop)하기, 프로바이더 설정하기, 이미지뷰에 띄우기 (81) | 2017.08.28 |
---|---|
[Android] 위험 권한, 권한 전용 팝업 만들기 (3) | 2017.08.28 |
[Android] 바탕화면에 바로가기 아이콘(ShortCut) 만들기 (1) | 2017.08.16 |
[Android] 액션바 제거, 상태바 설정 (0) | 2017.07.31 |
[Android] 깃허브 외부 라이브러리 적용하기 (2) | 2017.07.24 |