728x90
안드로이드 스튜디오 :: Broadcast Receiver
브로드캐스트에 특정 권한을 부여해 제한할 수 있다. 권한은 브로드캐스트 발신자, 수신자 모두 적용해 제한할 수 있다.
1. 권한을 사용해 전송하기
sendBroadcast(Intent, String) 또는 sendOrderedBroadcast(Intent, String, BroadcastReceiver, Handler, int, String, Bundle) 를 호출할 때 권한 매개변수를 지정할 수 있다. 예를 들어 다음 코드는 메세지 발송 권한이 필요한 브로드캐스트를 전송한다.
더보기
sendBroadcast(new Intent("com.example.NOTIFY"),
Manifest.permission.SEND_SMS);
더보기
sendBroadcast(Intent("com.example.NOTIFY"), Manifest.permission.SEND_SMS)
위와 같이 권한이 부여된 브로드캐스트를 전송하려면 발신 앱에서 권한을 요청해야 한다. (manifest 파일)
<uses-permission android:name="android.permission.SEND_SMS"/>
2. 권한을 사용해 수신하기
manifast 혹은 context 에 Broadcast Receiver 를 등록할 때 다음과 같이 권한을 함께 부여해야 한다. 먼저 manifest 에 선언된 수신자이다.
<receiver android:name=".MyBroadcastReceiver"
android:permission="android.permission.SEND_SMS">
<intent-filter>
<action android:name="android.intent.action.AIRPLANE_MODE"/>
</intent-filter>
</receiver>
<receiver> 태그에 권한 (permission)을 부여한다. 그리고 아래는 컨텍스트에 등록된 수신자이다.
더보기
IntentFilter filter = new IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED);
registerReceiver(receiver, filter, Manifest.permission.SEND_SMS, null );
더보기
var filter = IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED)
registerReceiver(receiver, filter, Manifest.permission.SEND_SMS, null
발신 앱과 마찬가지로 아래와 같이 권한을 요청해야 수신이 가능하다.
<uses-permission android:name="android.permission.SEND_SMS"/>
이렇게 권한 매개변수를 지정하면 해당 권한을 요청한 브로드캐스터만 인텐트를 전송할 수 있다.
728x90
반응형
'Android > 공통' 카테고리의 다른 글
Google AdMob 모바일 광고 생성 (0) | 2020.11.11 |
---|---|
안드로이드 스튜디오 :: 검색 관련 단축키 (windows, macOS) (0) | 2020.10.26 |
안드로이드 스튜디오 :: Broadcast 전송하기 (0) | 2020.10.14 |
안드로이드 스튜디오 :: Broadcast Receiver (0) | 2020.10.14 |
안드로이드 스튜디오 :: Broadcast 관련 인텐트 액션 (0) | 2020.10.13 |
댓글