我們將對 Android 15 的前景服務類型進行以下變更。
處理中的媒體項目
- 要在下列資訊清單中宣告的前景服務類型
android:foregroundServiceType
mediaProcessing
- 在資訊清單中宣告的權限
FOREGROUND_SERVICE_MEDIA_PROCESSING
- 要傳遞至
startForeground()
的常數 FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING
- 執行階段必要條件
- 無
- 說明
這項服務可在媒體資產上執行耗時的作業,例如將媒體轉換為其他格式。系統會允許這項服務執行的時間有限,在一般情況下,這個時間限制是每 24 小時 6 小時。(這項限制適用於應用程式的所有
mediaProcessing
前景服務)。在下列情況下,應用程式應手動停止媒體處理服務:
- 轉碼作業完成或達到失敗狀態時,請讓服務呼叫
Service.stopForeground()
和Service.stopSelf()
,以便完全停止服務。
- 轉碼作業完成或達到失敗狀態時,請讓服務呼叫
如果逾時,系統會呼叫服務的
Service.onTimeout(int, int)
方法。此時,服務有幾秒的時間可以呼叫Service.stopSelf()
。如果服務未呼叫Service.stopSelf()
,系統會發生 ANR,並顯示以下錯誤訊息:「<fgs_type> 的前景服務未在逾時期限內停止:<component_name>」。注意:
Service.onTimeout(int, int)
不適用於 Android 14 以下版本。在執行這些版本的裝置上,如果媒體處理服務達到逾時期限,系統會立即快取應用程式。因此,應用程式不應等待逾時通知。而是應盡快終止前景服務,或將其變更為背景服務。
相機
指定 Android 15 以上版本為目標版本的應用程式,不得透過 BOOT_COMPLETED
廣播接收器啟動相機前景服務。詳情請參閱「限制 BOOT_COMPLETED
廣播接收器啟動前景服務」。
同步處理資料
指定 Android 15 以上版本為目標版本的應用程式,不得透過 BOOT_COMPLETED
廣播接收器啟動資料同步前景服務。詳情請參閱「限制 BOOT_COMPLETED
廣播接收器啟動前景服務」。
媒體播放
指定 Android 15 以上版本為目標版本的應用程式,不得透過 BOOT_COMPLETED
廣播接收器啟動媒體播放前景服務。詳情請參閱「限制 BOOT_COMPLETED
廣播接收器啟動前景服務」。
媒體投影
指定 Android 15 以上版本為目標版本的應用程式,不得透過 BOOT_COMPLETED
廣播接收器啟動媒體投影前景服務。詳情請參閱「限制 BOOT_COMPLETED
廣播接收器啟動前景服務」。
麥克風
指定 Android 14 (API 級別 34) 以上版本為目標版本的應用程式,不得透過 BOOT_COMPLETED
廣播接收器啟動麥克風前景服務。詳情請參閱「限制 BOOT_COMPLETED
廣播接收器啟動前景服務」。
語音通話
指定 Android 15 以上版本為目標版本的應用程式,不得透過 BOOT_COMPLETED
廣播接收器啟動電話通話前景服務。詳情請參閱「限制 BOOT_COMPLETED
廣播接收器啟動前景服務」。