반응형
Android 14 USE_FULL_SCREEN_INTENT 권한 대응 & startForegrounService ForegroundServiceType 대응
Android OS 14에서 전체 화면 알림이 통화, 알람 제공앱으로 한정 되었습니다.
안드로이드 14로 업데이트 하기전에 앱이 설치 되어있으면 이 권한은 활성화 상태로 유지 됨.
전체 화면 알림 권한
Android OS 14에서는 사용자가 전체 화면 알림을 임의로 끌 수 있다.
'USE_FULL_SCREEN_INTENT' 권한을 갖고있는지 여부는 NotimacationManager를 이용하여야 함.
NotificationManagerCompat.from(context).canUseFullScreenIntent()
나는 해당 화면의 알림 울리는 곳에서 권한 체크 후 꺼져 있을 경우
시스템 Alert을 이용하여 한번만 알림이 뜨도록 작업 하였다.
Android 14 ForegroundServiceType
Android 14 변경사항으로, foreground service 선언시 AndroidManifest에
android:foregroundServiceType 를 필수로 명시하도록 변경 되었습니다.
<service
android:name="서비스명"
android:enabled="true"
android:foregroundServiceType="phoneCall"
android:exported="false" />
나는 전화 관련 서비스여서 phoneCall을 넣어 주었습니다.
서비스 타입 종류 (각각 권한도 필요함)
- camera: FOREGROUND_SERVICE_CAMERA
- connectedDevice: FOREGROUND_SERVICE_CONNECTED_DEVICE
- dataSync: FOREGROUND_SERVICE_DATA_SYNC
- health: FOREGROUND_SERVICE_HEALTH
- location: FOREGROUND_SERVICE_LOCATION
- mediaPlayback: FOREGROUND_SERVICE_MEDIA_PLAYBACK
- mediaProjection: FOREGROUND_SERVICE_MEDIA_PROJECTION
- microphone: FOREGROUND_SERVICE_MICROPHONE
- phoneCall: FOREGROUND_SERVICE_PHONE_CALL
- remoteMessaging: FOREGROUND_SERVICE_REMOTE_MESSAGING
- shortService: 필요 권한 없음
- specialUse: FOREGROUND_SERVICE_SPECIAL_USE
권한은 매니페스트에 추가해 줍니다.
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_PHONE_CALL"/>
서비스 실행
서비스 실행시에는 startForeground 인자에 서비스 타입을 넣어 준다.
ServiceCompat.startForeground(
context,
NOTIFICATION_ID,
notification,
ServiceInfo.FOREGROUND_SERVICE_TYPE_PHONE_CALL
)
나는 ServiceCompat이라는 것이 있어서 그걸 사용
참조 :
https://devjss.com/android-14-fgs-types-required/
https://source.android.com/docs/core/permissions/fsi-limits?hl=ko
반응형
'안드로이드 > SDK version' 카테고리의 다른 글
Android 12이상 Notification & BroadCastReceiver, Service StartActivity문제 (0) | 2024.03.20 |
---|---|
[Android] 카메라 촬영 Android10이상과 그 이하 (0) | 2024.03.18 |
registerForActivityResult가 onResume보다 늦게 호출이 되는 문제 (0) | 2023.01.11 |
[Android] Notification 오레오 대응 (0) | 2022.10.27 |
[Android] Android12에서 File에 대한 직렬화(Serialization) 문제 (0) | 2022.08.03 |