로그인 바로가기 하위 메뉴 바로가기 본문 바로가기
난이도
심화

안드로이드 앱 프로그래밍

임시 이미지 정재곤
http://www.boostcourse.org/mo316/notice/2600
좋아요 1436 수강생 20099
아래의 글은 BOOSTER 서포터즈로 활동했던 zhfpt***님이
작성한 부스트코스 후기입니다.
여러분들의 성원에 더 노력하는 부스트코스가 되겠습니다.
감사합니다.
******************************************
1)링크: https://blog.naver.com/zhfptm12/221813975793
2)작성날짜: 20/02/18
<본문작성>
[LECTURE] 1) 브로드캐스트 수신자 : edwith

들어가기 전에 브로드캐스팅(Broadcasting)이란 방송의 의미로 여러 사람에게 동시에 데이터를 전달한다는 뜻입니다. 여러분이 잘 아는 MBC, KBS 그리고 SBS 방송사의 ... - 부스트코스

www.edwith.org

브로드캐스팅(Broadcasting)이란 방송의 의미로 여러 사람에게 동시에 데이터를 전달한다는 뜻입니다.

여러분이 잘 아는 MBC, KBS 그리고 SBS 방송사의 약자 B도 브로드캐스팅을 의미합니다.

안드로이드 단말 안에서 여러 앱에 어떤 메시지를 전달하고 싶은데 어떤 앱이 이 메시지를 받기를 원하는지를 모른다면 브로드캐스팅 방법으로 전달할 수 있습니다.

그러면 앱에서 브로드캐스트 수신자라는 것을 만들어 원하는 브로드캐스팅 메시지만 받을 수 있습니다.

브로드캐스트 수신자에 대해 알아봅시다.

브로드캐스트 수신자

브로드캐스팅이란 메시지를 여러 대상에게 전달하는 것을 말합니다.

안드로이드는 여러 애플리케이션 구성 요소에게 메시지를 전달하고 싶은 경우 브로드캐스팅을 사용합니다.

가장 전형적인 예가 SMS 메시지를 받을 때입니다.

앱에서 브로드캐스팅 메시지를 받고 싶다면 브로드캐스트 수신자를 만들어 등록하면 됩니다.

브로드캐스팅 메시지는 인텐트 객체로 만들어져 전달됩니다.

SMS 메시지를 받고 싶어 만든 SmsReceiver 클래스는 다음과 같이 등록할 수 있습니다.

sms 수신 과정

SMS 수신 과정

브로드캐스트 수신자를 만들면 그 안에서 onReceive 메서드를 재정의할 수 있으며 메시지를 수신하면 이 메서드가 자동으로 호출됩니다.

onReceive 메서드의 파라미터로 전달받은 인텐트 객체 안에는 SMS를 보낸 사람이나 내용이 들어 있습니다.

따라서 그 부가 데이터를 확인하면 SMS 정보를 화면에 보여줄 수 있습니다.

다만 화면이 없는 브로드캐스트 수신자로 받았기 때문에 액티비티 쪽으로 전달한 후에 화면에 보여주어야 합니다.

또한 SMS를 수신할 때는 권한이 있어야 하며 AndroidManifest.xml 파일 안에  RECEIVE_SMS 권한을 추가하면 수신할 수 있습니다.

SMS 수신 권한은 위험 권한이라서 앱 실행 시에 사용자에게 권한 승인을 받아야 합니다.

<생각해보기>

1. 여러분이 직접 브로드캐스팅 메시지를 보낼 수도 있을까요?

- 실제 단말에서 run 할 시 가능할 것 같습니다.

2. 브로드캐스트 수신자로 전달받은 메시지를 다시 인텐트에 넣어 액티비티로 보내는 복잡한 과정을 거치지 않고 브로드캐스트 수신자로 전달받은 메시지를 바로 화면에 보여줄 수도 있을까요?

- 잘 모르겠습니다.

 

*********************************************