만족
[Android Studio] 브로드캐스트 수신자(BroadCast Receiver) 본문
[Android Studio] 브로드캐스트 수신자(BroadCast Receiver)
FrontEnd/Android Satisfaction 2017. 6. 30. 03:48하나의 객체를 여러개의 객체에 전달하는 방식을 "브로드캐스팅(BroadCasting)" 이라고 하고
이러한 정보를 "브로드캐스트 수신자"를 이용하여 받을 수 있다.
브로드캐스트 수신자를 새로 만들게 되면, Manifast에 추가해주어야 한다.
예를 들어, SMS라는 브로드캐스트를 수신하는 브로드캐스트 수신자를 추가하려면
<receiver android:name="브로드캐스트 수신자 클래스 이름">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
이렇게 Manifast에 추가해주면 된다.
public class SMS_Receiver extends BroadcastReceiver{
@Override
public void onReceive(Context c, Intent i){
if(i.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){
Toast.makeText(c, "SMS RECEIVE", Toast.LENGTH_SHORT).show();
}
}
}
SMS 브로드캐스트 수신자 클래스는 다음과 같은 구조로 이루어진다.
onReceive()메소드는 해당 브로드캐스트가 전달되면 자동으로 호출되는 메소드이므로
정보를 받았을 때 취할 행동을 이 메소드에 재정의하여 명시하면 된다.
권한 획득
SMS를 수신할 수 있는 권한이 필요하므로, Manifast의 manifast 태그 안에 아래의 태그를 입력해 준다.
<uses-permission android:name="android.permission.RECEIVE_SMS">
</uses-permission>
단, 안드로이드 OS가 마쉬멜로(6.0) 이상인 경우에는 별도의 코드를 추가하여 권한을 얻어야만 한다.
'FrontEnd > Android' 카테고리의 다른 글
[Android Studio] 프래그먼트(Fragment) (0) | 2017.06.30 |
---|---|
[Android Studio] 권한(Permission) 부여 (0) | 2017.06.30 |
[Android Studio] 서비스(Service) (0) | 2017.06.30 |
[Android Studio] 뒤로가기 버튼을 두번 눌러 액티비티 종료하기 (0) | 2017.06.30 |
[Android Studio] ActivityNotFoundException: Unable to find explicit activity class 에러 해결 (0) | 2017.06.30 |
Comments