Android 15의 포그라운드 서비스 유형 변경사항
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
Android 15에서는 포그라운드 서비스 유형이 다음과 같이 변경됩니다.
- 매니페스트에서 선언할 포그라운드 서비스 유형
android:foregroundServiceType
mediaProcessing
- 매니페스트에서 선언할 권한
FOREGROUND_SERVICE_MEDIA_PROCESSING
startForeground()
에 전달할 상수
FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING
- 런타임 기본 요건
- 없음
- 설명
미디어를 다른 형식으로 변환하는 등 미디어 저작물에 시간이 많이 걸리는 작업을 실행하는 서비스입니다. 시스템은 이 서비스가 실행되는 시간을 제한합니다. 일반적으로 이 시간 제한은 24시간 중 6시간입니다. 이 한도는 앱의 모든 mediaProcessing
포그라운드 서비스에서 공유됩니다.
앱은 다음 시나리오에서 미디어 처리 서비스를 수동으로 중지해야 합니다.
제한 시간에 도달하면 시스템은 서비스의 Service.onTimeout(int, int)
메서드를 호출합니다. 이때 서비스는 Service.stopSelf()
를 호출할 수 있는 몇 초의 시간이 있습니다. 서비스가 Service.stopSelf()
를 호출하지 않으면 '<fgs_type>의 포그라운드 서비스가 제한 시간 내에 중지되지 않았습니다. <component_name>'라는 오류 메시지와 함께 ANR이 발생합니다.
참고: Service.onTimeout(int, int)
는 Android 14 이하에서는 사용할 수 없습니다. 이러한 버전을 실행하는 기기에서 미디어 처리 서비스가 제한 시간에 도달하면 시스템은 즉시 앱을 캐시합니다. 따라서 앱은 제한 시간 알림을 받기 위해 기다리지 않아야 합니다.
대신 포그라운드 서비스를 종료하거나 적절한 시점에 백그라운드 서비스로 변경해야 합니다.
카메라
Android 15 이상을 타겟팅하는 앱은 BOOT_COMPLETED
broadcast receiver에서 카메라 포그라운드 서비스를 실행할 수 없습니다.
자세한 내용은 포그라운드 서비스를 실행하는 BOOT_COMPLETED
Broadcast receiver에 적용되는 제한사항을 참고하세요.
데이터 동기화
Android 15 이상을 타겟팅하는 앱은 BOOT_COMPLETED
broadcast receiver에서 데이터 동기화 포그라운드 서비스를 실행할 수 없습니다.
자세한 내용은 포그라운드 서비스를 실행하는 BOOT_COMPLETED
Broadcast receiver에 적용되는 제한사항을 참고하세요.
Android 15 이상을 타겟팅하는 앱은 BOOT_COMPLETED
broadcast receiver에서 미디어 재생 포그라운드 서비스를 실행할 수 없습니다.
자세한 내용은 포그라운드 서비스를 실행하는 BOOT_COMPLETED
Broadcast receiver에 적용되는 제한사항을 참고하세요.
Android 15 이상을 타겟팅하는 앱은 BOOT_COMPLETED
broadcast receiver에서 미디어 프로젝션 포그라운드 서비스를 실행할 수 없습니다.
자세한 내용은 포그라운드 서비스를 실행하는 BOOT_COMPLETED
Broadcast receiver에 적용되는 제한사항을 참고하세요.
마이크
Android 14 (API 수준 34) 이상을 타겟팅하는 앱은 BOOT_COMPLETED
broadcast receiver에서 마이크 포그라운드 서비스를 실행할 수 없습니다.
자세한 내용은 포그라운드 서비스를 실행하는 BOOT_COMPLETED
Broadcast receiver에 적용되는 제한사항을 참고하세요.
전화 통화
Android 15 이상을 타겟팅하는 앱은 BOOT_COMPLETED
broadcast receiver에서 전화 통화 포그라운드 서비스를 실행할 수 없습니다.
자세한 내용은 포그라운드 서비스를 실행하는 BOOT_COMPLETED
Broadcast receiver에 적용되는 제한사항을 참고하세요.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-27(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-07-27(UTC)"],[],[],null,["# Changes to foreground service types for Android 15\n\nWe are making the following changes to foreground service types with Android\n15.\n\n### Media processing\n\nForeground service type to declare in manifest under\n`android:foregroundServiceType`\n: `mediaProcessing`\n\nPermission to declare in your manifest\n: `FOREGROUND_SERVICE_MEDIA_PROCESSING`\n\nConstant to pass to `startForeground()`\n: `FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING`\n\nRuntime prerequisites\n: None\n\nDescription\n\n: Service for performing time-consuming operations on media assets, like\n converting media to different formats. The system allows this service a limited\n time to run; under normal circumstances, this time limit would be 6 hours out of\n every 24. (This limit is shared by all of an app's `mediaProcessing` foreground\n services.)\n\n: Your app should manually stop the media processing service in the following\n scenario:\n\n - When the transcoding operation finishes or reaches a failure state, have the service call [`Service.stopForeground()`](/reference/android/app/Service#stopForeground(int)) and [`Service.stopSelf()`](/reference/android/app/Service#stopSelf()) to stop the service completely.\n\n: If the timeout period is reached, the system calls the service's\n [`Service.onTimeout(int, int)`](/reference/android/app/Service#onTimeout(int,%20int)) method. At this\n time, the service has a few\n seconds to call [`Service.stopSelf()`](/reference/android/app/Service#stopSelf()). If the service does not call\n `Service.stopSelf()`, an ANR will occur with this error message: \"A\n foreground service of *\\\u003cfgs_type\\\u003e* did not stop within its\n timeout: *\\\u003ccomponent_name\\\u003e*\".\n\n **Note** : `Service.onTimeout(int, int)` is not available on Android 14\n or lower. On devices running those versions, if a media processing\n service reaches the timeout period, the system immediately caches the app.\n For this reason, your app shouldn't wait to get a timeout notification.\n Instead, it should terminate the foreground service or change it to a\n background service as soon as appropriate.\n\n### Camera\n\nApps that target Android 15 or higher are not allowed to launch a\ncamera foreground service from a `BOOT_COMPLETED` broadcast receiver.\nFor more information, see\n[Restrictions on `BOOT_COMPLETED` broadcast receivers launching foreground\nservices](/about/versions/15/behavior-changes-15#fgs-boot-completed).\n\n### Data sync\n\nApps that target Android 15 or higher are not allowed to launch a\ndata sync foreground service from a `BOOT_COMPLETED` broadcast receiver.\nFor more information, see\n[Restrictions on `BOOT_COMPLETED` broadcast receivers launching foreground\nservices](/about/versions/15/behavior-changes-15#fgs-boot-completed).\n\n### Media playback\n\nApps that target Android 15 or higher are not allowed to launch a\nmedia playback foreground service from a `BOOT_COMPLETED` broadcast receiver.\nFor more information, see\n[Restrictions on `BOOT_COMPLETED` broadcast receivers launching foreground\nservices](/about/versions/15/behavior-changes-15#fgs-boot-completed).\n\n### Media projection\n\nApps that target Android 15 or higher are not allowed to launch a\nmedia projection foreground service from a `BOOT_COMPLETED` broadcast receiver.\nFor more information, see\n[Restrictions on `BOOT_COMPLETED` broadcast receivers launching foreground\nservices](/about/versions/15/behavior-changes-15#fgs-boot-completed).\n\n### Microphone\n\nApps that target Android 14 (API level 34) or higher are not allowed to launch a\nmicrophone foreground service from a `BOOT_COMPLETED` broadcast receiver.\nFor more information, see\n[Restrictions on `BOOT_COMPLETED` broadcast receivers launching foreground\nservices](/about/versions/15/behavior-changes-15#fgs-boot-completed).\n\n### Phone call\n\nApps that target Android 15 or higher are not allowed to launch a\nphone call foreground service from a `BOOT_COMPLETED` broadcast receiver.\nFor more information, see\n[Restrictions on `BOOT_COMPLETED` broadcast receivers launching foreground\nservices](/about/versions/15/behavior-changes-15#fgs-boot-completed)."]]