포그라운드 서비스 변경사항

포그라운드 서비스 문서에서는 Android 포그라운드 서비스의 현재 동작을 설명합니다. 이 문서에서는 최신 버전의 Android를 타겟팅하는지 여부와 관계없이 대부분의 앱에 적용되는 권장사항을 안내합니다.

이 페이지에서는 포그라운드 서비스의 최근 중요한 변경사항과 최신 버전의 Android 플랫폼을 타겟팅하지 않는 앱에 미치는 영향을 설명합니다. 대부분의 경우 하위 API 수준을 타겟팅하는 앱에 선택사항이었던 권장사항이 상위 API 수준을 타겟팅하는 앱에는 필수사항이 됩니다.

Android 16 (API 수준 36)

다음 변경사항은 타겟팅하는 API 수준과 관계없이 Android 16 이상에서 실행되는 앱에 적용됩니다.

  • 이제 포그라운드 서비스에서 시작된 백그라운드 작업은 각 런타임 할당량을 준수해야 합니다. 여기에는 JobScheduler로 직접 예약된 작업과 WorkManager 또는 DownloadManager와 같은 다른 라이브러리에서 만든 작업이 포함됩니다.

    사용자 작업에 응답하여 데이터를 전송하려면 사용자 시작 데이터 전송 작업을 사용하는 것이 좋습니다. 이러한 작업은 일반 작업 할당량에서 제외됩니다.

Android 15 (API 수준 35)

API 수준 35 이상을 타겟팅하는 앱에는 다음 요구사항이 적용됩니다.

Android 14 (API 수준 34)

다음 요구사항은 API 수준 34 이상을 타겟팅하는 앱에 적용됩니다.

  • 서비스 유형과 함께 모든 포그라운드 서비스를 선언해야 합니다.
  • 앱은 포그라운드 서비스가 실행할 작업 유형에 적절한 권한 유형을 요청해야 합니다. 각 포그라운드 서비스 유형에는 상응하는 권한 유형이 있습니다. 예를 들어 앱이 카메라를 사용하는 포그라운드 서비스를 실행하는 경우 FOREGROUND_SERVICEFOREGROUND_SERVICE_CAMERA 권한을 모두 요청해야 합니다. 앱이 API 수준 34 이상을 타겟팅하지만 적절한 특정 권한을 요청하지 않으면 시스템에서 SecurityException을 발생시킵니다.

Android 12 (API 수준 31)

API 수준 31 이상을 타겟팅하는 앱에는 다음 요구사항이 적용됩니다.

Android 11 (API 수준 30)

API 수준 30 이상을 타겟팅하는 앱에는 다음 요구사항이 적용됩니다.

  • 앱의 포그라운드 서비스가 카메라 또는 마이크를 사용하는 경우 앱은 각각 camera 또는 microphone 서비스 유형으로 서비스를 선언해야 합니다.

Android 10 (API 수준 29)

다음 요구사항은 API 수준 29 이상을 타겟팅하는 앱에 적용됩니다.

  • 앱의 포그라운드 서비스가 위치 정보를 사용하는 경우 앱은 location 서비스 유형으로 서비스를 선언해야 합니다.

Android 9 (API 수준 28)

Android 9에서는 FOREGROUND_SERVICE 권한을 도입합니다. 포그라운드 서비스를 사용하는 Android 9에서 실행되는 앱에는 이 권한이 있어야 합니다.

API 수준 28 이상을 타겟팅하는 앱이 FOREGROUND_SERVICE 권한을 요청하지 않고 포그라운드 서비스를 만들려고 시도하면 시스템에서 SecurityException을 발생시킵니다.