Services는 사용자 app(application) 과 함께 실행이 되어도 항상 background Services 와 연결이 되어 실행된다는 점과는 달리 Broadcast Receivers는 사전 등록된 Receiver에 대해서 해당 이벤트가 발생하게 되면 언제든지 사용자 app(application) 에 메시지를 전달 해 준다는 점으로서 asynchronous 한 특성도 갖추고 있다. 실 예로서 스마트폰 앱 작업 중 전화가 걸려오면 즉 전화수신 이벤트가 발생하면 메시지와 함께 전화를 받고 다시 사용자 app(application) 으로 되돌아 갈 수 있다는 점이다
.
한편 배터리가 거의 소모가 되었을 경우 Broadcast Receiver를 통해 사전 경고 및 Alarm 설정기능 및 경보 기능도 마찬가지일 것이다. 하지만 이들도 결국은 Background에서 실행 되고 있으므로 Services 와 유사하나 구글에서 일단 Broadcasr Receivers 로 분류했기 때문에 그대로 따르도록 한다.
아울러 application 실행 중에 포착 가능한 intent도 스마트폰 시스템과 상호 정보를 주고받을 수도 있다. 이와 같은 Broadcast Receivers 의 특성은 인터럽트 (Interupt) 처리와도 유사한 면이 있다.
대표적으로 알아 두어야 할 Broadcast Receiver는 다음과 같다.
1. BATTERY_LOW 2. BOOT_COMPLETED 3. CALL
4. DATE_CHANGED 5. REBOOT 6. CONNECTIVITY_CHANGE
Broadcast Reciver 생성과 등록을 위한 WiFi 예제 코드를 작성해 보자. WiFi 는 사용자의 의지에 따라 별도로 ON OFF 가 가능하지만 Broadcast Receivers 실행 명령을 사용하여 ON OFF 해 보기로 한다.
스마트폰 시스템의 무선 WiFi 기능을 사용해야 하므로 블루투스에서처럼 AndroidManifest.xml에서 사용 승인 즉 permission을 신청해야 한다.
activity_main.xml은 Default 그대로 이용하되 “Hello World”를 “WiFi is Off”로 대체와 아울러 폰트 사이즈를 조절하자.
MainActivity의 라이브러리를 살펴보자. android.wifi.WifiManager 와 같은 네트워크 지원 라이브러리를 확인할 수 있다.
MainActivity 클라스는 onCreate, onStart, onStop 과 wifiStateReceiver 로 이루어진다.
WiFi Broadcasr Receivers 코드를 실행하여 스마트폰 화면상에서 클릭에 의해 시스템의 WiFi를 ON OFF 할 수 있으며 한편 반대로 시스템에서 WiFi를 ON OFF함에 으해 스마트폰 화면상에서 WiFi 스위치가 ON OFF 됨을 확인할 수 있다.
블루투스에서도 비슷한 사용법이 있는데 WiFi 와는 달리 Broadcasr Receivers 처리가 되어 있지 않음을 참조하자.
안드로이드 스튜디오 블루투스 ListPicking 코드
http://blog.daum.net/ejleep1/970
첨부된 코드를 다운받아 실행해 보자.
'안드로이드 스튜디오' 카테고리의 다른 글
5.6 TensorFlow.Lite Mobile IOT Digit Classifier 예제 해설 (0) | 2020.04.03 |
---|---|
안드로이드 스튜디오 Application Component 중 Broadcast Receivers WiFi 설정 실행 동영상 (0) | 2020.04.01 |
5.4 안드로이드 스튜디오 Application Component 중 Service에 관해 알아보자. (0) | 2020.03.30 |
5.3 안드로이드 스튜디오 CameraX 코드 구조 (0) | 2020.03.28 |
DrawingFun 실행 동영상 (0) | 2020.03.26 |