포그라운드 서비스 문서에서는 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
권한을 보유한 앱은 현재 표시되는 오버레이 창이 있거나 다른 백그라운드 시작 제한 예외 중 하나를 충족하는 경우에만 백그라운드에서 포그라운드 서비스를 실행할 수 있습니다. 이전에는 이러한 앱에 대한 예외가 더 광범위했습니다.