產品新訊

Wear OS 7 的新功能

9 分鐘閱讀
John Zoeller
Wear OS 開發人員關係工程師

我們很高興在今天推出 Wear OS 7 這項重大更新,為使用者和開發人員帶來全新的省電和智慧體驗。

我們瞭解智慧手錶是使用者全天候不可或缺的良伴,因此,我們持續投入資源進行電力最佳化,讓使用者能透過喜愛的應用程式完成更多工作。如果手錶從 Wear OS 6 升級至 Wear OS 7,一般使用者可望提升高達 10% 的電池續航力。

此外,我們也將這項技術擴大導入 Android 生態系統,預計於今年稍晚推出的特定智慧手錶將搭載 Gemini 智慧,主動提供個人化協助,讓使用者專心處理要事。

Wear OS 7 推出全新系統功能,並強化開發人員工具。全新使用者功能 (例如即時更新) 和強化媒體控制選項,可提供更智慧、更直覺的手錶體驗。此外,我們也強化了開發人員工具包,例如 Wear Compose 1.6 和 AppFunctions,開發人員將能簡化手錶應用程式體驗。  

一起來瞭解吧!

Wear OS 7 初期測試版

您現在可以試用 Google 智慧手錶平台的下一個版本,也就是以 Android 17 為基礎的 Wear OS 7 Canary 模擬器,這個版本將於今年稍晚推出。  

您可以使用這個新模擬器,親身體驗上述開發人員功能和工具,同時測試應用程式與即將推出的平台是否相容。  

請參閱異動內容,並立即開始測試應用程式。

探索 Wear OS 新功能

Wear OS 小工具

Widgets (1).png

全螢幕資訊方塊一直是 Wear OS 的熱門介面,可讓使用者即時一覽重要更新。隨著 Android 生態系統朝著統一的小工具願景邁進,我們也讓手錶更貼近 Android 系列產品,盡量減少開發人員的工作量。

今天,我們很高興推出 Tiles 的進化版:彈性且動態的 Wear 資訊方塊

Wear 小工具採用 Jetpack Glance 和新的 RemoteCompose 架構,相較於資訊方塊 ProtoLayout 程式庫,可提供更豐富的表現方式,並與 Compose 保持一致。Wear OS 小工具支援兩種新版面配置 (小型和大型),與行動裝置上的 2x1 和 2x2 格式完美對齊,確保設計在不同裝置上保持一致,同時仍可針對手腕進行設計最佳化

您可以輕鬆將全螢幕動態磚的 mainSlot UI 調整為 2x2 小工具。快來看看!

widgets code (1).png

如要深入瞭解這些新功能,請在本週稍晚觀看「小工具」I/O 大會講座,並參閱「小工具入門指南」,將小工具加入 Wear OS 體驗。

即時更新

Live Updates Blog post (1).png

Wear OS 7 將「最新即時資訊」帶到手錶上!

你可以使用「即時更新」功能,在手錶或行動應用程式中顯示即時重要資訊,讓使用者一目瞭然最新動態。

在手錶應用程式中,請使用 Live Updates,而非 Ongoing Activities API,在所有 Wear 7 裝置上發布本機更新。對於支援的原始設備製造商,手機應用程式發布的即時更新也會橋接至使用者的手錶。

如要瞭解 Just Eat 如何為使用者提供最新資訊,請參閱上方的內容!

詳情請參閱「Wear OS 上的通知」。

將應用程式連結至智慧系統

我們正在開發多種方式,讓開發人員在手錶上提供代理功能體驗,包括 AppFunctions 和工作自動化工具。

我們會在準備就緒時,透過開發人員網誌公告這些功能,並提供全方位的開發人員指南,協助您選擇合適的功能,並打造穩健的實作方式。目前先快速瞭解一下。

AppFunctions

Watch_IO26_Samsung_App_Functions (1).gif

開發人員可透過 AppFunctions API 將應用程式與代理程式和助理 (例如 Google Gemini) 整合,讓使用者透過語音完成工作,通常不需要逐步手動操作 UI 導覽。  

舉例來說,如要使用 Samsung Health 健康應用程式開始跑步,使用者可以對 Gemini 說:「開始追蹤我的跑步活動」。

我們目前正為有興趣的開發人員舉辦搶先體驗計畫。如有興趣,歡迎填寫這份表單

工作自動化

Watch_IO26_RemoteBonobo_Doordash_onBG_a22_GIF (1).gif

此外,使用者很快就能直接透過手錶,叫用及追蹤特定手機應用程式的自動化應用程式工作,例如使用 DoorDash 下單,完全不需要開發工作!

請密切注意開發人員網誌,瞭解如何準備及將應用程式連結至 Android 智慧系統。

穿戴運動智慧手環

Watch_IO26_SystemFitnessTracker_onBG_a05 (1).gif

我們瞭解從頭開始在 Wear OS 上建構功能齊全的優質健身追蹤體驗,需要耗費大量資源,因此我們為運動應用程式打造了全新的 Wear 運動追蹤器體驗。這項功能將於今年稍晚在 Wear OS 中推出。

運動追蹤器提供豐富的標準化運動追蹤體驗,包括心率監控、媒體控制,以及一系列其他實用功能,可協助您減少開發投資,同時確保使用者享有高品質體驗。

我們與 ASICS Runkeeper 密切合作,為使用者提供這項功能,歡迎體驗!

Wear OS 7 強化系統媒體控制項

Wear OS 7 強化了系統媒體控制項,讓使用者能更輕鬆地控制媒體,享受流暢體驗。

個別應用程式的媒體自動啟動控制選項

Watch_IO26_AutoLaunch_Media_onBG_a05 (1).gif

使用者現在可以直接在手錶的系統媒體控制項中,為每個應用程式自訂媒體自動啟動體驗。

如果使用者為應用程式開啟「自動啟動設定」,只要在手機上啟動媒體,手錶就會自動顯示媒體控制選項。

如果開發人員已實作可擴充至手錶的媒體應用程式,就能輕鬆使用這項功能。

使用遠端輸出端切換器,流暢切換音訊路由

Remote Output Switcher (1).png

系統媒體控制選項整合了全新的遠端輸出切換器,讓管理音訊輸出變得前所未有地輕鬆。

在已配對的手機上聆聽媒體時,使用者可以直接在手錶上切換媒體播放裝置。

UI 程式庫更新

除了上述使用者新功能,我們也為開發人員工具包推出多項強大強化功能,協助開發人員為 Wear OS 的未來做好準備!

Compose for Wear OS 1.6

Compose for Wear OS 1.6 現已推出,是 Wear OS 開發的基礎。

這項更新包含多項強大功能,包括:

透過 Navigation 3 簡化導覽

開發人員可以整合 Navigation 3,以更靈活且符合 Compose 慣例的方式處理 Wear OS 導覽。

@Composable
fun WearApp() {
    val backStack = rememberNavBackStack(MenuScreen)

    WearAppTheme {
        AppScaffold {
            val entryProvider = remember {
                entryProvider<NavKey> {
                    entry<MenuScreen> { GreetingScreen() }
                    entry<ListNavScreen> { ListScreen() }
                }
            }

            val swipeDismissableSceneStrategy = 
                rememberSwipeDismissableSceneStrategy<NavKey>()

            NavDisplay(
                backStack = backStack,
                entryProvider = entryProvider,
                sceneStrategies = listOf(swipeDismissableSceneStrategy)
            )
        }
    }
}

改善 TransformingLazyColumn 的清單管理功能

我們大幅改善了進階清單管理功能,包括透過新的 minimumVerticalContentPadding 修飾符強化邊框間距支援,以及支援吸附和反向版面配置等新功能。詳情請參閱 TransformingLazyColumn

val listState = rememberTransformingLazyColumnState()
val transformationSpec = rememberTransformationSpec()

/*
 * TransformingLazyColumn takes care of the horizontal and vertical
 * padding for the list and handles scrolling.
 */
ScreenScaffold(scrollState = listState) { contentPadding ->
    TransformingLazyColumn(
        state = listState,
        contentPadding = contentPadding
    ) {
        item {
            ListHeader(
                modifier = Modifier
                    .fillMaxWidth()
                    .transformedHeight(this, transformationSpec)
                    .minimumVerticalContentPadding(
                        ListHeaderDefaults.minimumTopListContentPadding
                    ),
                    transformation = SurfaceTransformation(transformationSpec)
            ) { Text(text = "Header") }
        }
    }
}

使用 LocalAmbientModeManager 最佳化微光模式體驗

全新的 LocalAmbientModeManager 經過最佳化,可處理微光模式流程,讓開發人員進一步控管微光模式體驗的呈現方式。

 
override fun onCreate(savedInstanceState: Bundle?) {
    setContent {
        val ambientModeManager = rememberAmbientModeManager()
        CompositionLocalProvider(LocalAmbientModeManager provides ambientModeManager) {
            val localAmbientModeManager = LocalAmbientModeManager.current
            val ambientMode = localAmbientModeManager?.currentAmbientMode

            Column(
                verticalArrangement = Arrangement.Center,
                horizontalAlignment = Alignment.CenterHorizontally,
                modifier = Modifier.fillMaxSize(),
            ) {
                val ambientModeName =
                    when (ambientMode) {
                        is AmbientMode.Interactive -> "Interactive"
                        is AmbientMode.Ambient -> "Ambient"
                        else -> "Unknown"
                    }

                val color = if (ambientMode is AmbientMode.Ambient) Color.Gray
                    else Color.Yellow
                Text(text = "$ambientModeName Mode", color = color)
            }
        }
    }
}

Protolayout 和動態磚更新

我們鼓勵開發人員採用新的 Wear 小工具,但仍會繼續支援 Protolayout 和 Tiles 程式庫一段時間,且這兩個程式庫都有新的穩定版。

Protolayout 1.4 和 Tiles 1.6 共同提供多項重要新功能,包括:

  • 內嵌圖片資源:ImageResource 現在可以直接內嵌在版面配置中,且 Tile 現在支援透過 ProtoLayoutScope 自動收集資源,因此不必手動對應資源,也不必分割成個別方法。除了提升程式碼品質,這項做法還能將系統到供應商服務的呼叫合併為單一繫結器呼叫,進而縮短動態磚載入延遲時間。
  • Material3TileService:圖塊可以實作 Material3TileService,這是一項全方位的暫停函式,可同時傳回圖塊版面配置和資源,並自動管理 MaterialScope 和 ProtoLayoutScope,簡化開發體驗。
  • 動態服務切換: 在 Wear 7 中,現在可以在資訊清單中將多個 TileService 執行個體分組,以便在代表相同動態磚的不同服務之間動態切換。

如要查看新的動態磚範例,請按這裡

WFF 5

錶面格式第 5 版 (WFF5) 現已推出,並提供多項新功能,讓您更輕鬆地製作錶面,包括:

  • 強化對齊選項:文字元素 (例如 TextCircular) 現在提供更多對齊選項,包括多個文字元素在同一基準線上的 verticalAlign。
  • 自動調整大小功能強化:現在可以在 TextCircular 上使用 isAutoSize,且 Font 元素新增了 minSize 屬性,可在啟用自動調整大小功能時限制最小大小。
  • 混合模式:Group 和 ComplicationSlot 元素現在支援混合模式,Part* 元素也支援這項功能。
  • 筆劃接合:筆劃和加權筆劃元素現在包含接合屬性。
  • 階層式設定:使用者樣式現在可以階層式結構呈現,部分設定只會在其他設定具有特定值時顯示。使用者樣式現在也能啟用或停用複雜功能格位。您可以使用「使用者樣式選項」中的 childSettingIds 和 complicationSlotIds 設定這些選項。

請參閱這份新的開發人員指南,進一步瞭解 WFF 5。

立即開始為 Wear OS 7 建構應用程式

現在正是開發 Wear OS 應用程式的最佳時機。如要進一步瞭解如何開始使用,請參閱下列技術資源:

期待看到您在 Wear OS 上建構的體驗!

撰寫者:

繼續閱讀