728x90
반응형
기존 registerReceiver를 통해 broadcast 하던 방법이 android 14 버전에서는 변경되어서 수정
IntentFilter filter = new IntentFilter();
filter.addAction("com.example.android");
registerReceiver(BroadcastReceiver, filter);
// 이렇게 사용하던 거에서 버전에 따라 다르게 타도록 변경
IntentFilter filter = new IntentFilter();
filter.addAction("com.example.android");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
registerReceiver(BroadcastReceiver, filter, RECEIVER_EXPORTED);
}else {
registerReceiver(BroadcastReceiver, filter);
}
registerReceiver에 넘겨줄 때 RECEIVER_EXPORTED 또는 RECEIVER_NOT_EXPORTED 둘 중에 하나를 넣어서 넘겨주어야 함 ( 다른 앱이 이 앱으로 브로드캐스트를 보낼 수 있는지 여부를 명시적으로 해주어야함)*
RECEIVER_EXPORTED - 가능
RECEIVER_NOT_EXPORTED - 불가능
그렇지 않으면 SecurityException 발생
java.lang.SecurityException: One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be specified when a receiver isn't being registered exclusively for system broadcasts
728x90
반응형
'Android > 개발 정보' 카테고리의 다른 글
Android floating button 움직이도록 만들기 (0) | 2024.06.24 |
---|---|
안드로이드 플로팅 버튼 사용하기 (0) | 2024.06.11 |
Android studio 다른 버전으로 여러 개 사용하기 (1) | 2024.05.16 |
Android 색상 제대로 안나올 때 (0) | 2023.07.03 |
Android 키보드 제어 (0) | 2023.05.19 |