만족

[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) 이상인 경우에는 별도의 코드를 추가하여 권한을 얻어야만 한다.





Comments