포그라운드 서비스 문서에서는 Android 포그라운드 서비스의 현재 동작을 설명합니다. 이 문서에서는 최신 버전의 Android를 타겟팅하는지 여부와 관계없이 대부분의 앱에 적용되는 권장사항을 안내합니다.
이 페이지에서는 포그라운드 서비스의 최근 중요한 변경사항과 최신 버전의 Android 플랫폼을 타겟팅하지 않는 앱에 미치는 영향을 설명합니다. 대부분의 경우 낮은 API 수준을 타겟팅하는 앱에 선택사항이었던 권장사항이 더 높은 API 수준을 타겟팅하는 앱에는 필수가 됩니다.
Android 9 (API 수준 28)
Android 9에서는 FOREGROUND_SERVICE
권한을 도입합니다. 포그라운드 서비스를 사용하는 Android 9에서 실행되는 앱에는 이 권한이 있어야 합니다.
API 수준 28 이상을 타겟팅하는 앱이 FOREGROUND_SERVICE
권한을 요청하지 않고 포그라운드 서비스를 만들려고 시도하면 시스템에서 SecurityException
을 발생시킵니다.
Android 10 (API 수준 29)
다음 요구사항은 API 수준 29 이상을 타겟팅하는 앱에 적용됩니다.
Android 11 (API 수준 30)
API 수준 30 이상을 타겟팅하는 앱에는 다음 요구사항이 적용됩니다.
- 앱의 포그라운드 서비스가 카메라 또는 마이크를 사용하는 경우 앱은 각각
camera
또는microphone
서비스 유형으로 서비스를 선언해야 합니다.
Android 12 (API 수준 31)
API 수준 31 이상을 타겟팅하는 앱에는 다음 요구사항이 적용됩니다.
- 앱이 백그라운드에 있는 동안 앱은 포그라운드 서비스를 실행할 수 없습니다(일부 특수한 사례 제외). 이 규칙의 예외와 관련된 자세한 내용은 백그라운드에서 포그라운드 서비스를 시작할 때 적용되는 제한사항을 참고하세요.
Android 14 (API 수준 34)
API 수준 34 이상을 타겟팅하는 앱에는 다음 요구사항이 적용됩니다.
- 서비스 유형과 함께 모든 포그라운드 서비스를 선언해야 합니다.
- 앱은 포그라운드 서비스가 실행할 작업 유형에 적절한 권한 유형을 요청해야 합니다. 각 포그라운드 서비스 유형에는 해당하는 권한 유형이 있습니다. 예를 들어 앱이 카메라를 사용하는 포그라운드 서비스를 실행하는 경우
FOREGROUND_SERVICE
및FOREGROUND_SERVICE_CAMERA
권한을 모두 요청해야 합니다. 앱이 API 수준 34 이상을 타겟팅하지만 적절한 특정 권한을 요청하지 않으면 시스템에서SecurityException
을 발생시킵니다.
Android 15 (API 수준 35)
API 수준 35 이상을 타겟팅하는 앱에는 다음 요구사항이 적용됩니다.
dataSync
포그라운드 서비스가 실행될 수 있는 시간에 관한 새로운 제한사항이 있습니다. 이러한 제한사항은 포그라운드 서비스 시간 제한 동작에 설명되어 있습니다. Android 15의 새로운mediaProcessing
포그라운드 서비스 유형에도 유사한 제한사항이 적용됩니다.BOOT_COMPLETED
포그라운드 서비스가 더 이상 특정 포그라운드 서비스를 실행할 수 없음SYSTEM_ALERT_WINDOW
권한을 보유한 앱은 현재 표시되는 오버레이 창이 있거나 다른 백그라운드 시작 제한 예외 중 하나를 충족하는 경우에만 백그라운드에서 포그라운드 서비스를 실행할 수 있습니다. 이전에는 이러한 앱에 대한 예외가 더 광범위했습니다.