您可以產生小工具預覽畫面,為小工具建立動態個人化預覽畫面,準確反映小工具在使用者主畫面上的顯示方式。這些預覽畫面是透過推送 API 提供,也就是說,應用程式會在生命週期內的任何時間提供預覽畫面,不必接收來自小工具主機的明確要求。
本指南說明如何為 Glance 小工具提供預覽畫面。如果小工具是使用 RemoteViews 實作,請參閱「在小工具挑選器中新增預覽畫面」。
如要改善 Glance 小工具的應用程式小工具挑選器體驗,請在 Android 15 以上版本裝置上使用 GlanceAppWidget.providePreview 提供產生的小工具預覽畫面,並為舊版指定 previewImage,以及在 Android 15 以上版本中,將其做為產生預覽畫面時的備援。
詳情請參閱 YouTube 上的「Enrich your app with live updates and widgets」。
設定應用程式,以便預覽生成的小工具
如要在搭載 Android 15 以上版本的裝置上顯示產生的動態小工具預覽畫面,請先在模組 build.gradle 檔案中將 compileSdk 值設為 35 以上,以便向小工具挑選器提供 RemoteViews
應用程式隨後就能在 GlanceAppWidgetManager 中使用 setWidgetPreview。為防止濫用行為並減輕系統健康方面的疑慮,setWidgetPreview 是設有頻率限制的 API。預設限制為每小時約兩通電話。
使用 Jetpack Glance 生成更新的預覽畫面
如果是使用 Jetpack Glance 建立的小工具,請按照下列步驟操作:
覆寫
GlanceAppWidget.providePreview函式,為預覽畫面提供可組合內容。如同在provideGlance中,載入應用程式的資料並傳遞至小工具的內容可組合函式,讓預覽畫面顯示正確資料。與provideGlance不同,這是單一組合,不會重組或產生任何效果。呼叫
GlanceAppWidgetManager.setWidgetPreviews即可產生及發布預覽畫面。
系統不會提供預覽畫面,因此應用程式必須決定何時呼叫 setWidgetPreviews。更新策略取決於小工具的用途:
- 如果小工具包含靜態資訊或快速操作,請在首次啟動應用程式時設定預覽畫面。
- 應用程式有資料後,即可設定預覽畫面,例如使用者登入或完成初始設定後。
- 您可以設定週期性工作,以所選頻率更新預覽畫面。
排解生成的預覽畫面問題
常見的問題是,生成預覽畫面後,預覽圖片中可能會缺少圖片、圖示或其他可組合函式,相較於小工具的放置大小。這個放置大小是由 targetCellWidth 和 targetCellHeight (如有指定) 定義,或是由應用程式小工具供應商資訊檔案中的 minWidth 和 minHeight 定義。
這是因為 Android 預設只會轉譯小工具最小尺寸的可組合函式。換句話說,Android 預設會將 previewSizeMode 設為 SizeMode.Single。系統會使用應用程式小工具供應器資訊 XML 中的 android:minHeight 和 android:minWidth,判斷要繪製哪些可組合函式。
如要修正這個問題,請在 GlanceAppWidget 中覆寫 previewSizeMode,並將其設為 SizeMode.Responsive,提供一組 DpSize 值。這會告知 Android 預覽畫面需要算繪的所有版面配置大小,確保所有元素都能正確顯示。
針對特定板型規格進行最佳化。從最小值開始,根據小工具的中斷點提供一或兩種尺寸。至少指定一個previewImage,以確保回溯相容性。如要瞭解不同格線大小適用的最低 DP 值,請參閱小工具設計指南。
回溯相容性 (小工具預覽)
如要讓搭載 Android 15 以下版本的裝置在小工具挑選器中顯示小工具預覽畫面,或做為 Android 15 以上版本中產生預覽畫面的備援,請指定 previewImage 屬性。
如果變更小工具的外觀,請更新預覽圖片。