Android 17 收緊背景播聲規矩:手機突然播聲有望少啲
3C 產品

Android 17 收緊背景播聲規矩:手機突然播聲有望少啲

圖片:via Android Authority — https://www.androidauthority.com/android-17-background-audio-hardening-3669109/
TechLab 編輯部(譯)·

對香港用家係小修補,對媒體 app 係兼容功課

Android 17 收緊背景播聲規矩:手機突然播聲有望少啲

圖:Android Authority.原文連結

手機突然出聲,未必係大故障,但喺香港特別尷尬:港鐵車廂夠靜、office 會議室夠近、課室同圖書館又未必容得下半秒亂播。Android 17 入面一項新改動,就係想處理呢類「app 明明唔喺眼前,隔一陣又自己播返聲」嘅情況。呢個唔係新音量掣,亦唔係將所有背景播放一刀切封死,而係將背景聲音操作拉返去一個更清楚嘅規矩:要麼 app 正喺屏幕上,要麼就用合規嘅背景服務。

Android Authority 報道指,Google 喺 Android 17 引入 Background Audio Hardening,限制 app 喺背景播放聲音、要求 audio focus,或者改手機音量。官方 Android Developers 文件已確認,Android 17 Beta 4 已經收錄相關改動;而 Beta 3 已達 Platform Stability,代表 API 同主要行為已接近定案。不過要講清楚,Android 17 目前仍屬 beta/逐步測試階段,唔代表香港所有 Samsung、Xiaomi、OPPO、vivo 或其他港行 Android 手機會即時有呢個效果,港行正式升級時間仍然係 [待確認]。

系統想攔截嘅唔係正常聽歌

Google 文件寫得幾清楚:由 Android 17 開始,只要 app 喺背景做音訊互動,包括播放聲音、攞 audio focus、改 volume API,都要符合 lifecycle 要求。最基本一層係 app 要有可見 activity,或者正運行一個唔係 SHORT_SERVICE 類型嘅 foreground service;如果 app target Android 17,即 API level 37,背景狀態下仲要用到有 while-in-use 能力嘅 foreground service。換句話講,系統唔再接受一個無畫面、無清楚用戶動作、無適當服務狀態嘅 app,突然喺背景搶聲音控制權。

呢個改動嘅結果唔一定會彈錯誤畀用家睇。官方文件話,如果 app 喺無效 lifecycle 狀態下叫用相關 audio API,播放同改音量可以「靜默失敗」,即係無例外、無錯誤訊息,但聲音唔會照出;audio focus request 就會回傳 AUDIOFOCUS_REQUEST_FAILED。對一般用家嚟講,表面效果係差 app 少咗機會突然播聲;對開發者嚟講,麻煩在於錯誤可能唔會以 crash 形式現身,測試時要睇 logcatadb dumpsys audio,或者用 Android 17 提供嘅 hardening 測試指令主動搵出問題。

點解而家要收緊

呢件事背後其實係 Android 多年背景執行問題嘅延伸。Google 提到幾種情況:app 無用 foreground service 播聲,之後被系統凍結;到解凍時,可能幾個鐘之後突然恢復播放。另一種係 app 背景播聲時被不同運行限制影響,聲音變得斷續。再極端啲,播放 session 或 audio focus 脫離 activity lifecycle,變成用家明明見唔到 app,亦搵唔到正常介面停聲,但聲音或者聲音控制仍然留喺系統入面。Android 17 嘅方向,就係將「可唔可以播」由事後處理,提前到 app 生命周期同用戶意圖層面。

所以,正常音樂、Podcast、影片、通話同導航唔係無路行。Google 建議媒體 app 用 Jetpack Media3 入面嘅 MediaSessionService 管理背景播放;如果唔用 Media3,就要手動開 mediaPlayback foreground service,而且最好喺 app 仍然可見、或者用戶明確按下播放動作時啟動。影片 app 如果容許熄屏後繼續播,唔應該等到背景先補救,而係喺用戶觸發播放時已經設好服務。短暫緩衝、短暫失去 audio focus 呢類十分鐘內可恢復嘅情況,可以保持服務;真正播放完、用戶暫停、失去 focus 或不可恢復錯誤,就應該停服務同結束 media session。

  • 唔受影響嘅典型情況:app 正喺屏幕上播放,或者用 Picture-in-Picture;通話 app 用合適 telecom API;鬧鐘、計時器用合規 alarm audio 路徑。
  • 高風險情況:app 開機後收到 BOOT_COMPLETE 就喺背景播聲;無 foreground service 仍然嘗試續播;播放狀態同可見介面脫節。
  • 開發者要做嘅事:審查所有背景播聲流程,補齊 MediaSessionServicemediaPlaybackphoneCall 或位置/導航相關 foreground service 宣告,並喺 Android 17 beta 裝置或模擬器測試。

行業方向係將背景權限講清楚

Android 呢次改動唔算孤立。Apple 平台一直有 Background Modes 概念,app 要喺 Xcode capability 入面宣告自己需要 Audio、AirPlay、Picture in Picture、Location updates、VoIP 等背景模式,系統先會畀相關背景工作繼續做。差別係 Android 長期有較開放嘅背景服務、第三方 app 同不同廠商系統層,實際情況更複雜;而 Android 17 今次似係將聲音呢一類最容易滋擾用家嘅能力,搬向更接近「明確用途、明確服務、明確用戶動作」嘅模式。

呢個亦反映手機 OS 近年嘅共同取態:背景能力唔再係 app 想用就長開,而係要同私隱、電量、用戶控制掛鉤。Android 14 已經要求 target 較新版本嘅 app 更仔細申報 foreground service type;Android 17 再將音訊 API 納入更硬嘅 lifecycle 檢查。對大型串流平台或者成熟通訊 app,呢類架構多數已經存在;真正會痛嘅,可能係舊 app、外判多年無重構嘅本地 app、或者以前靠 broadcast receiver、常駐 service 撐起背景聲音嘅寫法。

香港用家幾時先感受到

香港唔係 Android 小眾市場。StatCounter 2026 年 4 月香港 mobile OS 數據顯示,iOS 佔 50.23%,Android 佔 49.61%,兩邊其實非常接近。即係話,任何 Android 系統層面嘅背景聲音改動,都可能影響一大批本地手機用家。不過初期最先接觸到嘅,大機會係參與 beta 嘅 Pixel 用家同開發者。Google 官方列出 Android 17 beta OTA/映像支援 Pixel 6 系列至 Pixel 10 系列、Pixel Tablet、Pixel Fold、Pixel 9 Pro Fold、Pixel 10 Pro Fold 等裝置;其他品牌港行升級節奏要等各廠公布,唔應該預設即日同步。

實際體感方面,呢個改動唔會令手機變成完全無聲,通知、鬧鐘、通話、導航提示仍然有各自合理路徑;亦唔會阻止你正打開嘅影片 app 播聲。佢針對嘅係更煩嘅灰色地帶:app 曾經播過一段聲,之後你跳走、鎖屏、甚至隔咗一段時間,佢因為背景狀態處理得差而突然續播。喺香港,呢類「半秒尷尬」比好多地方更容易被放大,因為通勤、辦公、上堂、補習、醫務所等場景都密集而安靜。Android 17 如果做得準,最大價值唔係新功能,而係少一啲不必要滋擾。

本地 app 團隊要早啲執兼容

對香港開發者,重點唔係等正式版出先算。媒體、Podcast、網上電台、影片教學、健身課程、視像會議、客服通話、電召、導航、物流派送提示,只要涉及背景聲音或音量控制,就要問清楚:聲音係咪由用戶明確觸發?app 退到背景後有無合規 foreground service?media session 有無正確結束?遇到 buffering、暫停、通話打斷時,服務係保持合理一段時間,定係失控咁留低?舊式「開機自動起 service 再播提示」或者「背景常駐等機會出聲」嘅做法,喺 Android 17 可能會被靜默擋,仲未必即刻有 crash 報告提醒你。

最務實嘅做法係先用 Android 17 Beta 4、支援 Pixel 或 Android Emulator 跑一次完整流程,特別係鎖屏、切 app、PiP、藍牙耳機按鍵、車機控制、來電中斷、訊號差後恢復、開機後重啟任務。Media app 優先考慮 Media3 MediaSessionService;通話 app 走 telecom API;導航同位置相關提示就要核對 foreground service type、位置權限同 while-in-use 限制。Google 已經將 Beta 4 定位為最後 scheduled beta,兼容測試唔再係「有空先做」嘅項目。

小改動,但方向幾清晰

Android 17 收緊背景播聲,表面係解決手機突然出聲呢個細問題,實際係 Android 繼續收窄 app 背景自由度。對香港用家,最好嘅結果係你唔需要知道發生咩事,只係少遇到尷尬;對開發者,最好嘅結果係趁 beta 階段修好 lifecycle,而唔係等用戶升級後先發現背景播放失靈。呢次改動唔應該被解讀成「所有背景播放都會被封」,相反,佢係逼 app 用更清楚、更可控嘅方式證明:呢把聲,真係用戶想佢繼續播。


參考來源

本文根據原文及公開資料整理;資料有出入時,以原文及官方資料為準。

分享:WhatsAppThreadsTelegramFacebook