안드로이드 스튜디오

5.5 안드로이드 스튜디오 Application Component 중 Broadcast Receivers WiFi 에 관해 알아보자.

coding art 2020. 4. 1. 13:52
728x90

 

 

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.xmlDefault 그대로 이용하되 “Hello World”“WiFi is Off”로 대체와 아울러 폰트 사이즈를 조절하자.

MainActivity의 라이브러리를 살펴보자. android.wifi.WifiManager 와 같은 네트워크 지원 라이브러리를 확인할 수 있다.

MainActivity 클라스는 onCreate, onStart, onStop wifiStateReceiver 로 이루어진다.

WiFi Broadcasr Receivers 코드를 실행하여 스마트폰 화면상에서 클릭에 의해 시스템의 WiFiON OFF 할 수 있으며 한편 반대로 시스템에서 WiFiON OFF함에 으해 스마트폰 화면상에서 WiFi 스위치가 ON OFF 됨을 확인할 수 있다.

블루투스에서도 비슷한 사용법이 있는데 WiFi 와는 달리 Broadcasr Receivers 처리가 되어 있지 않음을 참조하자.

안드로이드 스튜디오 블루투스 ListPicking 코드

http://blog.daum.net/ejleep1/970

 

첨부된 코드를 다운받아 실행해 보자.

wf.zip

 

 

 

 

 

wf.zip
0.13MB