หน้าปัด Wear
หมายเหตุ: Watch Face Format จำเป็นต้องใช้สำหรับการติดตั้งหน้าปัดในอุปกรณ์ที่ติดตั้ง Wear OS 5 ขึ้นไปไว้ล่วงหน้า และสำหรับหน้าปัดใหม่ทั้งหมดที่เผยแพร่ใน Google Play
ตั้งแต่เดือนมกราคม 2026 เป็นต้นไป หน้าปัดจะต้องอยู่ในรูปแบบ Watch Face Format จึงจะติดตั้งในอุปกรณ์ Wear OS ทั้งหมดได้
ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงที่แสดงต่อผู้ใช้ได้ในบทความนี้ในศูนย์ช่วยเหลือ
| อัปเดตล่าสุด | รุ่นที่เสถียร | รุ่นที่อาจได้รับการเผยแพร่ | รุ่นเบต้า | เวอร์ชันอัลฟ่า |
|---|---|---|---|---|
| 23 เมษายน 2025 | 1.2.1 | - | - | 1.3.0-alpha07 |
การประกาศทรัพยากร Dependency
หากต้องการเพิ่มทรัพยากร Dependency ใน Wear คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมในที่เก็บ Maven ของ Google
เพิ่มการอ้างอิงสำหรับอาร์ติแฟกต์ที่ต้องการในไฟล์ build.gradle สำหรับแอปหรือโมดูล
Groovy
dependencies { // Use to implement wear watchfaces implementation "androidx.wear.watchface:watchface:1.2.1" // Use to implement wear watchface complications implementation "androidx.wear.watchface:watchface-complications-data-source:1.2.1" // (Kotlin-specific extensions) implementation "androidx.wear.watchface:watchface-complications-data-source-ktx:1.2.1" // Use to implement a watchface style and complication editor implementation "androidx.wear.watchface:watchface-editor:1.2.1" // Can use to render complications. // This library is optional and watchfaces may have custom implementation for rendering // complications. implementation "androidx.wear.watchface:watchface-complications-rendering:1.2.1" }
Kotlin
dependencies { // Use to implement wear watchfaces implementation("androidx.wear.watchface:watchface:1.2.1") // Use to implement wear watchface complications implementation "androidx.wear.watchface:watchface-complications-data-source:1.2.1" // (Kotlin-specific extensions) implementation "androidx.wear.watchface:watchface-complications-data-source-ktx:1.2.1" // Use to implement a watchface style and complication editor implementation("androidx.wear.watchface:watchface-editor:1.2.1") // Can use to render complications. // This library is optional and watchfaces may have custom implementation for rendering // complications. implementation "androidx.wear.watchface:watchface-complications-rendering:1.2.1" }
ดูข้อมูลเพิ่มเติมเกี่ยวกับการพึ่งพาได้ที่เพิ่มการพึ่งพิงบิวด์
ความคิดเห็น
ความคิดเห็นของคุณช่วยปรับปรุง Jetpack ได้ โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมีแนวคิดในการปรับปรุงคลังนี้ โปรดดูปัญหาที่มีอยู่ในคลังนี้ก่อนสร้างปัญหาใหม่ คุณสามารถเพิ่มการโหวตให้กับปัญหาที่มีอยู่ได้โดยคลิกปุ่มดาว
ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบของเครื่องมือติดตามปัญหา
เวอร์ชัน 1.3
เวอร์ชัน 1.3.0-alpha07
23 เมษายน 2025
androidx.wear.watchface:watchface-*:1.3.0-alpha07 ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0-alpha07 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- การกำหนดสคีมา UserStyle ของหน้าปัดนั้นทำได้มาระยะหนึ่งแล้ว และคุณยังกำหนด
ColorUserStyleSettingใน XML ได้ด้วย
การเปลี่ยนแปลง API
- โปรเจ็กต์ที่เผยแพร่ด้วย Kotlin 2.0 ต้องใช้ KGP 2.0.0 ขึ้นไป (Idb6b5)
- เพิ่ม Watch Face Push API ซึ่งช่วยให้แอป Wear OS ติดตั้งหน้าปัดในนาฬิกาแบบเป็นโปรแกรมได้
การแก้ไขข้อบกพร่อง
- เราขอแนะนำให้ผู้ให้บริการข้อมูลแทรกที่ใช้ 1.3.0-alpha06 อัปเกรดเนื่องจากข้อบกพร่องข้อขัดข้องของ
ComplicationDataSourceUpdateRequesterใน WearOS เวอร์ชันถัดไปได้รับการแก้ไขแล้ว
เวอร์ชัน 1.3.0-alpha06
26 มีนาคม 2025
androidx.wear.watchface:watchface-*:1.3.0-alpha06 ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0-alpha06 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เราเลิกใช้งาน Wear Watchface API (watchface, watchface-client, watchface-client-guava, watchface-complications-rendering, watchface-data, watchface-editor, watchface-editor-guava และ watchface-style) แล้วเพื่อหันมาใช้ Wear Watchface Format และจะนำออกจาก AndroidX ในท้ายที่สุด เราจะไม่เลิกใช้งาน API ข้อมูลแทรกและจะยังคงให้บริการต่อไป (Ice960)
- ตอนนี้ API ข้อมูลแทรกสามารถสื่อสารกับ
WearSDKได้โดยตรง ซึ่งมีประสิทธิภาพมากขึ้นเนื่องจากมีการส่งต่อ IPC น้อยลง
เวอร์ชัน 1.3.0-alpha05
15 มกราคม 2025
androidx.wear.watchface:watchface-*:1.3.0-alpha05 ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0-alpha05 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
โดยทั่วไปหน้าปัดจะอนุญาตให้ผู้ใช้เลือกสีโดยใช้ ListUserStyle แม้ว่าวิธีนี้จะใช้งานได้ แต่ก็ต้องส่งไอคอนผ่านบลูทูธไปยังเครื่องมือแก้ไขสำหรับอุปกรณ์เสริม ซึ่งไม่มีประสิทธิภาพ ดังนั้นเราจึงเปิดตัว ColorUserStyleSetting โดยที่เพย์โหลดคือรายการสีอย่างน้อย 1 สีต่อสไตล์ ซึ่งมีรูปแบบการต่อสายที่กะทัดรัดกว่ามาก
เราได้เพิ่มฟีเจอร์ที่แสดงต่อ OEM ซึ่งช่วยให้ผู้ให้บริการข้อมูลแทรกของ OEM เพิ่มข้อมูลเพิ่มเติมลงใน ComplicationData เพื่อใช้ในหน้าปัดของ OEM ได้
การเปลี่ยนแปลง API
- ตอนนี้คลาส
UserStyleSettingและUserStyleOptionมีเครื่องมือสร้าง ซึ่งเป็นวิธีที่แนะนำในการสร้างคลาส (Iacd03) - การรองรับการส่งข้อมูลเพิ่มเติมใน
ComplicationDataฟีเจอร์นี้มีไว้สำหรับ OEM ที่ต้องการควบคุมทั้งผู้ให้บริการข้อมูลแทรกและหน้าปัดที่รับข้อมูล การตั้งค่าพิเศษต้องมีสิทธิ์com.google.android.wearable.permission.COMPLICATION_EXTRASที่มีสิทธิ์ (I4e3b2) - โดยทั่วไปหน้าปัดจะอนุญาตให้ผู้ใช้เลือกสีโดยใช้
ListUserStyleโดยมีไอคอนสำหรับListOptionแต่ละรายการ เนื่องจากระบบจะส่งสคีมาUserStyleผ่านบลูทูธ คุณจึงควรลดขนาดสคีมาให้เล็กที่สุด ซึ่งอาจเกิดปัญหาได้หากมีตัวเลือกสีหลายสิบรายการเนื่องจากไอคอนทั้งหมดเหล่านั้น เราได้เพิ่มColorUserStyleSettingเพื่อช่วยในเรื่องนี้ โดยตัวเลือกจะมีรายการสีแทนไอคอน ซึ่งทำให้ดูกะทัดรัดมากขึ้น (Ib542e) ColorUserStyleSettingและColorOptionต้องใช้ API 34 (I8771d)
การแก้ไขข้อบกพร่อง
- ตอนนี้ไลบรารีนี้ใช้แอตทริบิวต์ JSpecify nullness ซึ่งเป็นการใช้ประเภท นักพัฒนาซอฟต์แวร์ Kotlin ควรใช้อาร์กิวเมนต์คอมไพเลอร์ต่อไปนี้เพื่อบังคับใช้การใช้งานที่ถูกต้อง
-Xjspecify-annotations=strict(นี่เป็นค่าเริ่มต้นที่เริ่มตั้งแต่คอมไพเลอร์ Kotlin เวอร์ชัน 2.1.0) (Ifd363, b/326456246)
เวอร์ชัน 1.3.0-alpha04
18 กันยายน 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha04 ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0-alpha04 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เพิ่มการรองรับการโหลดไอคอนแบบ Lazy Loading ใน
UserStyleSettingsและUserStyleOptionsซึ่งช่วยเพิ่มประสิทธิภาพในการโหลดหน้าปัด (Iaf43d) - เพิ่มตัวเลือกให้ถ่ายภาพหน้าจอที่อัปเดตทุกครั้งที่มีการเปลี่ยนแปลงการกำหนดค่าระบบ (เช่น หากมีการเปลี่ยนแปลงภาษา) ผ่าน
Watchface.setUpdateScreenshotOnConfigurationChangeใหม่ การตั้งค่านี้จะปิดอยู่โดยค่าเริ่มต้น (I765a1)
การแก้ไขข้อบกพร่อง
- นำการระบุการเข้าถึง API ของแพลตฟอร์มใหม่ด้วยตนเองออกแล้ว เนื่องจากการดำเนินการนี้จะทําโดยอัตโนมัติผ่านโมเดล API เมื่อใช้ R8 กับ AGP 7.3 ขึ้นไป (เช่น R8 เวอร์ชัน 3.3) และสำหรับบิลด์ทั้งหมดเมื่อใช้ AGP 8.1 ขึ้นไป (เช่น D8 เวอร์ชัน 8.1) เราขอแนะนำให้ลูกค้าที่ไม่ได้ใช้ AGP อัปเดตเป็น D8 เวอร์ชัน 8.1 ขึ้นไป ดูบทความนี้สำหรับรายละเอียดเพิ่มเติม (Ia60e0, b/345472586)
เวอร์ชัน 1.3.0-alpha03
17 เมษายน 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha03 ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0-alpha03 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เราได้เพิ่ม
EditorSession#setOverrideComplicationsซึ่งจะตั้งค่าComplicationDataของอินสแตนซ์หน้าปัดที่เกี่ยวข้องไว้ชั่วคราวขณะแก้ไข หากข้อมูลแทรกมีการเปลี่ยนแปลงไม่บ่อยนัก วิธีนี้จะมีประสิทธิภาพมากกว่าการส่งการลบล้างผ่านEditorSession#renderWatchFaceToBitmap(I19384)
การแก้ไขข้อบกพร่อง
- ก่อนหน้านี้
selectComplicationDataForInstantเรียกtoApiComplicationDataสำหรับไทม์ไลน์ใดก็ตาม ซึ่งหมายความว่าการทดสอบความเท่าเทียมกันของรีเฟอเรนซ์ === ที่ตามมาจะล้มเหลวเสมอ ซึ่งหมายความว่าข้อมูลแทรกจะโหลดซ้ำทุกเฟรม ทำให้แบตเตอรี่หมดเร็ว (717406)
เวอร์ชัน 1.3.0-alpha02
3 เมษายน 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha02 ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0-alpha02 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ตอนนี้เราใช้การเปรียบเทียบแบบอ้างอิงเพื่อเปรียบเทียบ best กับ
selectedDataเนื่องจากโอเปอเรเตอร์เท่ากับใช้ทรัพยากรมาก (446b00)
การเปลี่ยนแปลง API
- เราได้เพิ่ม API แบบไดนามิกที่ไม่มีการเปลี่ยนเส้นทางสําหรับ
GoalProgressComplicationData(c33264)
เวอร์ชัน 1.3.0-alpha01
7 กุมภาพันธ์ 2024
androidx.wear.watchface:watchface-*:1.3.0-alpha01 ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.0-alpha01 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
WatchFaceServicesสามารถเริ่มต้นพร้อมกันได้ และควรเป็นแบบไม่มีสถานะ เราได้เพิ่มStatefulWatchFaceServiceเพื่อรองรับกรณีนี้ ซึ่งจะส่งค่าเพิ่มเติมที่ผู้ใช้กำหนดซึ่งสร้างโดยcreateExtra()ไปยังการลบล้างทั้งหมดที่เรียกใช้ระหว่างการเริ่มต้น- ตอนนี้
GlesRenderer2มีการโอเวอร์โหลดคอนสตรัคเตอร์ซึ่งช่วยให้คุณระบุรายการแอตทริบิวต์ที่จะลองทีละรายการด้วยeglChooseConfigได้
การเปลี่ยนแปลง API
- ตอนนี้
StatefulWatchFaceServiceรองรับการลบล้างgetComplicationSlotInflationFactoryซึ่งระบบจะส่งข้อมูลเพิ่มเติมที่ผู้ใช้กำหนดซึ่งcreateExtra()สร้างขึ้น (I82d9f) - หน้าปัดบางหน้าต้องแชร์ข้อมูลเสริมที่สร้างระหว่าง
createUserStyleSchemaกับวิธีการเริ่มต้นอื่นๆ เนื่องจากไม่มีทางเลือกที่ดีกว่า นักพัฒนาซอฟต์แวร์จึงมักทำให้WatchFaceServicesเป็นแบบมีสถานะ ซึ่งอันตรายเนื่องจากระบบอาจสร้างอินสแตนซ์หลายรายการพร้อมกัน ซึ่งอาจทำให้เกิดข้อบกพร่องได้ ในการแก้ปัญหานี้ เราได้เปิดตัวStatefulWatchFaceServiceและStatefulWatchFaceRuntimeServiceซึ่งcreateExtra()จะสร้างประเภทที่ผู้ใช้กำหนดและส่งไปยังเมธอดสร้างต่างๆ ในรูปแบบพารามิเตอร์ (If8a99) - เราได้เพิ่ม
getUserStyleFlavorsลงในInteractiveWatchFaceClientซึ่ง OEM ส่วนใหญ่ให้ความสนใจ (I0f5d8) - ตอนนี้
GlesRenderer2มีการโอเวอร์โหลดคอนสตรัคเตอร์ซึ่งให้คุณระบุรายการแอตทริบิวต์ที่จะลองทีละรายการด้วยeglChooseConfigตัวอย่างเช่น การดำเนินการนี้ช่วยให้คุณลองใช้การกําหนดค่าที่มีการปรับเกลี่ยภาพก่อน แล้วเปลี่ยนไปใช้การกําหนดค่าที่ไม่มีการปรับเกลี่ยภาพได้หากจําเป็น (I1ba74) - ตั้งแต่ Android U เป็นต้นไป ระบบจะเพิ่มการรองรับ
SystemDataSources.DATA_SOURCE_HEART_RATEลงใน WearOS ข้อมูลแทรกนี้รับประกันว่าจะรองรับข้อมูลแทรกSHORT_TEXTเท่านั้น แต่เราขอแนะนำให้ComplicationSlotยอมรับSMALL_IMAGEด้วย เนื่องจาก OEM อาจเลือกแสดงทางลัดไปยังแอปสุขภาพแทนค่าปัจจุบัน (I34223) - เราได้เพิ่ม
METADATA_KEY_CONFIG_RESTORE_SUPPORTEDซึ่งตั้งแต่ Android U เป็นต้นไปจะควบคุมสิ่งที่จะเกิดขึ้นเมื่อระบบกู้คืนจากข้อมูลสำรองของแหล่งข้อมูลข้อมูลแทรกด้วยMETADATA_KEY_DATA_SOURCE_CONFIG_ACTIONโดยค่าเริ่มต้น ระบบจะถือว่าบริการแหล่งข้อมูลข้อมูลแทรกรองรับการสำรองข้อมูลการกําหนดค่า แต่หากไม่รองรับ ระบบจะเพิ่มการตั้งค่าข้อมูลเมตาMETADATA_KEY_DATA_SOURCE_CONFIG_ACTIONเป็นเท็จ ซึ่งจะทําเครื่องหมายช่องข้อมูลแทรกว่าไม่ได้กําหนดค่า (I6c505)
เวอร์ชัน 1.2
เวอร์ชัน 1.2.1
24 มกราคม 2024
androidx.wear.watchface:watchface-*:1.2.1 ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.1 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขข้อขัดข้องใน Samsung Galaxy Watch 4, 5 และ 6 (43f0b0)
เวอร์ชัน 1.2.0
29 พฤศจิกายน 2023
androidx.wear.watchface:watchface-*:1.2.0 ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลงที่สําคัญตั้งแต่ 1.1.0
- เราได้เพิ่มการรองรับข้อมูลแทรกประเภทใหม่ๆ ซึ่งพร้อมให้ใช้งานใน Android T ดังนี้
GoalProgressComplicationDataซึ่งคล้ายกับRangedValueComplicationDataยกเว้นว่าใช้สำหรับความคืบหน้าตามเป้าหมายที่ค่าต่ำสุดโดยนัยคือ 0 และค่าที่อนุญาตต้องมากกว่าtargetValueWeightedElementsComplicationDataซึ่งประกอบด้วยอาร์เรย์ขององค์ประกอบ (คู่ของน้ำหนักและสี) พร้อมกับข้อความ/ชื่อ/รูปภาพ (ไม่บังคับ) ข้อมูลเหล่านี้อาจแสดงเป็นแผนภูมิวงกลมที่สีต้องสื่อความหมายตามบริบท เนื่องจากโดยทั่วไปแล้วแผนภูมิแบบซับซ้อนจะไม่มีพื้นที่เพียงพอที่จะแสดงผลป้ายกำกับ
- เราได้เพิ่มการรองรับ
ColorRangesที่ไม่บังคับไปยังRangedValueComplicationDataโดยปกติแล้ว ข้อมูลแทรกจะแสดงผลในสีที่หน้าปัดเลือก แต่บางครั้งComplicationDataSourceอาจเป็นตําแหน่งที่ดีที่สุดในการตั้งค่าสี เช่น เมื่อข้อมูลแทรกมีความหมายเชิงอรรถศาสตร์ เช่น สีแดงเป็นสีน้ำเงินสำหรับอุณหภูมิ ComplicationDataเกือบทุกประเภทรองรับSmallImagesแล้วในตอนนี้- เราได้เพิ่ม
ComplicationDisplayPolicyโดยที่DO_NOT_SHOW_WHEN_DEVICE_LOCKEDจะสั่งให้หน้าปัดที่เข้ากันได้ไม่แสดงข้อมูลแทรกเมื่ออุปกรณ์ล็อกอยู่ - ตั้งแต่ Android T เป็นต้นไป OEM จะกำหนดได้ว่าคําขอข้อมูลแทรกมาจากหน้าปัดในรายการที่กําหนดโดยข้อมูลเมตา
android.support.wearable.complications.SAFE_WATCH_FACESในไฟล์ Manifest ของผู้ให้บริการหรือไม่ โดยComplicationRequest#isForSafeWatchFaceผู้ให้บริการจะต้องมีสิทธิ์com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACEเพื่อรับค่าอื่นๆ นอกเหนือจาก TargetWatchFaceSafety.UNKNOWN UserStyleFlavorsกลายเป็นฟีเจอร์ที่ไม่ใช่เวอร์ชันทดลองแล้ว
เวอร์ชัน 1.2.0-rc01
18 ตุลาคม 2023
androidx.wear.watchface:watchface-*:1.2.0-rc01 ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-rc01 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.2.0-beta02
6 กันยายน 2023
androidx.wear.watchface:watchface-*:1.2.0-beta02 ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-beta02 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
SuspendingComplicationDataSourceService#onDestroyเปิดแล้ว โปรดทราบว่าเราได้นำการรองรับข้อมูลแทรกสภาพอากาศเริ่มต้นของระบบออกแล้ว
การเปลี่ยนแปลง API
- เปลี่ยน "แสดงแหล่งข้อมูลใหม่สำหรับข้อมูลแทรกสภาพอากาศ" กลับ (I6f335)
เวอร์ชัน 1.2.0-beta01
23 สิงหาคม 2023
androidx.wear.watchface:watchface-*:1.2.0-beta01 ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-beta01 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ตั้งแต่ Android T เป็นต้นไป WearOS จะรองรับข้อมูลแทรกระบบสภาพอากาศเริ่มต้น
การเปลี่ยนแปลง API
- เพิ่มระบบค่าเริ่มต้นของสภาพอากาศสำรองสำหรับข้อมูลแทรก (Ia0994)
- แพตช์นี้จะเพิ่ม
WatchFaceRuntimeServiceและWatchFaceControlClient.createWatchFaceRuntimeControlClientพร้อมกับ Guava Wrapper การดำเนินการเหล่านี้จะเพิ่มการรองรับรันไทม์หน้าปัด ซึ่งเป็นหน้าปัดประเภทพิเศษที่โหลดคําจํากัดความจากแพ็กเกจอื่น ปัจจุบัน WearOS รองรับรันไทม์สำหรับรูปแบบหน้าปัด Android เท่านั้น (I2799f) - การแก้ไขนี้ติดตามมาจาก aosp/2636578 ซึ่งเราได้เปลี่ยนชื่อ int defs เพื่อให้โค้ดที่ขึ้นอยู่กับ
WatchFaceType,CanvasType,TapTypeหรือComplicationsSlotBoundsTypeไม่ต้องมีการเปลี่ยนแปลง (I4098b) - อัปเดตไฟล์ API เพื่อใส่คำอธิบายประกอบการระงับความเข้ากันได้ (I8e87a, b/287516207)
- แพตช์นี้จะแสดงค่าคงที่
WatchFaceTypeในWatchFaceTypes, ค่าคงที่CanvasTypeในCanvasTypes, ค่าคงที่TapTypeในTapTypesและค่าคงที่ComplicationsSlotBoundsTypeในComplicationsSlotBoundsType(I3b85a, b/288750666) WatchFace.OverlayStyleมีการใช้งานต่ำมากและ OEM รองรับได้ไม่มากนัก เราจึงจะลดการใช้งานและนำออกในภายหลัง (I7344a)
เวอร์ชัน 1.2.0-alpha09
21 มิถุนายน 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha09 ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-alpha09 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ตอนนี้
RangedValueComplicationData.BuilderยอมรับDynamicFloatแล้ว และDynamicComplicationTextใหม่พร้อมใช้งานเป็นคลาสย่อยของComplicationTextซึ่งทั้ง 2 รายการสามารถใช้นิพจน์แบบไดนามิก รวมถึงการเชื่อมโยงแพลตฟอร์มที่อัปเดตที่ 1 Hz ในอุปกรณ์ Wear 4 ที่รองรับ
การเปลี่ยนแปลง API
- เพิ่มประเภทแบบไดนามิกสำหรับระยะทางรายวัน แคลอรีรายวัน และชั้นที่เดินขึ้น/ลงรายวัน ตอนนี้คีย์สําหรับแหล่งข้อมูลด้านสุขภาพของแพลตฟอร์มจะอยู่ภายใต้
PlatformHealthSources.Keys(Ib7637) - ใช้
PlatformDataProviderเพื่อระบุอัตราการเต้นของหัวใจและจำนวนก้าวรายวัน นำอินเทอร์เฟซSensorGatewayออกจาก API สาธารณะ (I55b84) - เปลี่ยนชื่อ
StateEntryValueเป็นDynamicDataValueและอัปเดต API สถานะให้ใช้DynamicDataKey(If1c01) - เพิ่ม
AppDataKeyเพื่อเข้าถึงสถานะการพุชแอป เพิ่มPlatformDataKeyเพื่อเข้าถึงข้อมูลแพลตฟอร์ม เพิ่มการรองรับเนมสเปซในStateStore(I7985e) - ระบบนำวิธีการ
enable/disablePlatformSourceออกจากDynamicTypeEvaluatorแล้ว ผู้โทรควรรับผิดชอบสำหรับการอัปเดต (I78c6d) - อนุญาตให้จำกัดขนาดของประเภทข้อมูลที่เชื่อมโยง (Ie2966)
เวอร์ชัน 1.2.0-alpha08
19 เมษายน 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha08 ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-alpha08 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ตั้งแต่ Android T เป็นต้นไป ผู้ให้บริการข้อมูลแทรกที่มีสิทธิ์
com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACEจะลงทะเบียนข้อมูลเมตาandroidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPESซึ่งจะลบล้างandroid.support.wearable.complications.SUPPORTED_TYPESสำหรับหน้าปัดที่ปลอดภัย ซึ่งหมายความว่าผู้ให้บริการข้อมูลแทรกอาจเลือกแสดงข้อมูลแทรกประเภทต่างๆ ในหน้าปัดที่เชื่อถือและไม่เชื่อถือ
การเปลี่ยนแปลง API
- การนำไปใช้งานของคลาส
@Deprecatedกับพร็อพเพอร์ตี้ (I882d1, b/271441831) - ชื่อพารามิเตอร์ค่าของ
Enum.valueOfเปลี่ยนแปลง (Ia9b89) - ข้อยกเว้นที่โยนเพิ่มเติมจาก enum valueOf (I818fe)
- เราได้นํา
renderWatchFaceToSurfaceออกแล้ว และใช้createRemoteWatchFaceViewแทน ซึ่งสร้างขึ้นจาก SurfaceControlViewHost และอนุญาตให้ผู้เรียกใช้ฝังมุมมองจากหน้าปัด ซึ่งจะแสดงผลเมื่อไคลเอ็นต์เรียกRemoteWatchFaceViewHost#renderWatchFace(Ib311d) - เราได้เพิ่ม
renderWatchFaceToSurfaceไปยังInteractiveWatchFaceClient,HeadlessWatchFaceClientและEditorSessionแล้ว ซึ่งโดยทั่วไปจะมีประสิทธิภาพมากกว่าการแสดงผลเป็นบิตแมป (Ieacad) - เปลี่ยนชื่อ
ObservableStateStoreเป็นStateStoreแล้ว (Ieb0e2) - เพิ่ม
DynamicTypeEvaluator.Builderแทนอาร์กิวเมนต์คอนสตรัคเตอร์เพื่อให้ใช้อาร์กิวเมนต์ที่ไม่บังคับได้มากขึ้น ซึ่งรวมถึงObservableStateStoreที่ตอนนี้จะเป็นร้านค้าว่างโดยค่าเริ่มต้น (I6f832) - ปรับลําดับพารามิเตอร์ใน
DynamicTypeEvaluator(Ic1ba4) - เพิ่มผู้ดำเนินการลงในเมธอด
DynamicTypeEvaluator.bindแล้ว (I346ab) - เราได้เพิ่มเมธอด
startEvaluationลงในBoundDynamicTypeเพื่อทริกเกอร์การประเมินหลังจากมีการเชื่อมโยงประเภทแบบไดนามิกแล้ว (I19908) - ผู้ให้บริการข้อมูลแทรกที่มี
com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACEที่มีสิทธิ์สามารถลงทะเบียนข้อมูลเมตาandroidx.wear.watchface.complications.datasource.SAFE_WATCH_FACE_SUPPORTED_TYPESซึ่งจะลบล้างandroid.support.wearable.complications.SUPPORTED_TYPESสำหรับหน้าปัดที่ปลอดภัย (Id1c73) - เราได้เปลี่ยนชื่อ
CustomValueUserStyleSettings2เป็นLargeCustomValueUserStyleSettingsแล้ว (Ic17ac)
การแก้ไขข้อบกพร่อง
- นำ
DynamicTypeValueReceiver#onPreUpdateออกแล้ว (I2dc35)
เวอร์ชัน 1.2.0-alpha07
22 กุมภาพันธ์ 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha07 ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-alpha07 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
ตั้งแต่ Android T เป็นต้นไป OEM จะกำหนดได้ว่าคําขอข้อมูลแทรกมาจากหน้าปัดในรายการที่กําหนดโดยข้อมูลเมตา
android.support.wearable.complications.SAFE_WATCH_FACESในไฟล์ Manifest ของผู้ให้บริการหรือไม่ โดยComplicationRequest#isForSafeWatchFaceผู้ให้บริการจะต้องมีสิทธิ์com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACEจึงจะรับข้อมูลอื่นที่ไม่ใช่TargetWatchFaceSafety.UNKNOWNได้นอกจากนี้ Android T
CustomValueUserStyleSetting2ยังพร้อมให้ใช้งานด้วย ซึ่งสามารถเก็บข้อมูลได้สูงสุด 12.5 KB ขีดจํากัดก่อนหน้านี้สําหรับCustomValueUserStyleSettingคือ 1KB แม้ว่าจะมีขีดจำกัดขนาดที่เพิ่มขึ้น แต่เราขอแนะนำให้นักพัฒนาหน้าปัดเก็บข้อมูลให้น้อยที่สุด เนื่องจากระบบจะส่งการตั้งค่าผ่านบลูทูธระหว่างการแก้ไข และแบนด์วิดท์ของบลูทูธมีจำกัด
การเปลี่ยนแปลง API
- เราได้เพิ่มพารามิเตอร์ที่ไม่บังคับ
eglContextAttribListลงในGlesRendererและGlesRenderer2ซึ่งช่วยให้คุณตั้งค่าEGL14.EGL_CONTEXT_CLIENT_VERSIONที่ส่งไปยังEGL14.eglCreateContextได้ (I2a83e) - เราได้ย้ายข้อมูลไลบรารีหน้าปัดไปยัง
androidx.core.util.Consumerแทนjava.util.function.Consumerแล้ว (I273f5) - ข้อยกเว้นเพิ่มเติมที่โยนออกมาจากตัวเข้าถึงพร็อพเพอร์ตี้ KT (Iff9d9)
- เราได้เพิ่ม
InteractiveWatchFaceClient.isComplicationDisplayPolicySupportedเพื่อให้ไคลเอ็นต์ตัดสินใจได้ว่าจะต้องจำลองการรองรับในนามของหน้าปัดเก่าหรือไม่ (I24c89) - เราตัดสินใจว่า
isForSafeWatchFaceควรเป็นIntDefแบบ 3 สถานะ (Ief2f7) - สำหรับ Android T เราได้เปิดตัว
ComplicationRequest.isForSafeWatchFaceซึ่งมีไว้สำหรับ OEM และใช้com.google.wear.permission.GET_IS_FOR_SAFE_WATCH_FACEสำหรับแหล่งข้อมูลในภาพระบบ ฟังก์ชันนี้จะแสดงผลเป็น "จริง" หากหน้าปัดที่กำลังขออยู่อยู่ในรายการหน้าปัดที่ปลอดภัยซึ่งแหล่งข้อมูลระบุไว้ในไฟล์ Manifest (I0cbb6) - สำหรับ Android T เราได้เพิ่ม
CustomValueUserStyleSetting2ซึ่งเก็บได้สูงสุด 12.5 KB ขีดจํากัดก่อนหน้านี้สําหรับCustomValueUserStyleSettingคือ 1KB (I0b100)
เวอร์ชัน 1.2.0-alpha06
25 มกราคม 2023
androidx.wear.watchface:watchface-*:1.2.0-alpha06 ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-alpha06 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เรากำลังดำเนินการเพิ่มการรองรับการเชื่อมโยงแพลตฟอร์มข้อมูลแทรกอยู่ แต่ยังไม่พร้อมใช้งานในตอนนี้ โปรดติดตามความคืบหน้าต่อไป
- เราได้เพิ่มการรองรับ XML
ComplicationSlotสำหรับข้อมูลแทรกประเภทใหม่อย่าง GOAL_PROGRESS และ WEIGHTED_ELEMENTS
การแก้ไขข้อบกพร่อง
- แก้ไขข้อบกพร่องที่เครื่องมือแก้ไขหน้าปัดเปิดตัวในอุปกรณ์ Samsung อย่างไม่ถูกต้อง (3b5987)
- แก้ไขข้อบกพร่องที่บางครั้งข้อมูลแทรกไม่แสดงอย่างถูกต้องเมื่อสลับระหว่างหน้าปัดที่มีรายการโปรดหลายรายการ (b38ece)
- แก้ไขข้อบกพร่องเกี่ยวกับการจัดรูปแบบด้วย perOptionScreenReaderNames ที่ทําให้หน้าปัดขัดข้อง (e9f466)
เวอร์ชัน 1.2.0-alpha05
7 ธันวาคม 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha05 ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-alpha05 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
เมื่อไม่นานมานี้เราได้เพิ่มการรองรับ
UserStyleSettingsแบบลําดับชั้น และตั้งแต่ Android T เป็นต้นไป คุณสามารถมีComplicationSlotsUserStyleSettingมากกว่า 1 รายการในลําดับชั้นได้ComplicationSlotsUserStyleSettingจะมีเพียงรายการเดียวที่ใช้งานอยู่ โดยอิงตามการเลือกสไตล์ของผู้ใช้เรากำลังปรับปรุงการรองรับโปรแกรมอ่านหน้าจอสำหรับ
ListOptionและComplicationSlotsOptionด้วยการเพิ่มช่องscreenReaderNameโปรดทราบว่าก่อน Android T เครื่องมือแก้ไขสำหรับอุปกรณ์เสริมจะไม่สนใจช่องนี้
การเปลี่ยนแปลง API
- เราได้เพิ่มช่อง
screenReaderNameใหม่ที่ไม่บังคับลงในListOptionและComplicationSlotsOptionเพื่อให้ผู้แก้ไขใช้ ซึ่งเครื่องมือแก้ไขสำหรับอุปกรณ์เสริมในอุปกรณ์ก่อน Android T จะละเว้น (I75326) - ตั้งแต่ Android T ระบบรองรับ
ComplicationSlotsUserStyleSettingsหลายรายการในลําดับชั้นของสไตล์ ตราบใดที่จะมีComplicationSlotsUserStyleSettingsใช้งานได้เพียงรายการเดียวในแต่ละครั้ง เราได้เพิ่มฟังก์ชันยูทิลิตีfindComplicationSlotsOptionForUserStyleลงในUserStyleSchemaเพื่อช่วยค้นหาComplicationSlotsOptionที่ใช้งานอยู่ (หากมี) (Ic2b06) - มีการดึง
RangedValuesTypesไปยังออบเจ็กต์สหายของRangedValueComplicationDataและเปลี่ยนชื่อเป็นTYPE_UNDEFINED,TYPE_RATINGและเพิ่มTYPE_PERCENTAGEใหม่ (I55d02) - เราได้เปลี่ยนชื่อ
DynamicFloatเวอร์ชันทดลองเป็นFloatExpressionและทําเครื่องหมายเป็น@hideแล้ว (Idf4f1) - เพิ่มคำอธิบายประกอบ
@JvmDefaultWithCompatibility(I8f206)
เวอร์ชัน 1.2.0-alpha04
9 พฤศจิกายน 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha04 ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-alpha04 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- สำหรับ Android T เราได้เพิ่มการรองรับข้อมูลแทรกใหม่ 2 ประเภท ได้แก่
GoalProgressComplicationDataและWeightedElementsComplicationData GoalProgressComplicationDataคล้ายกับRangedValueComplicationDataแต่ค่าของGoalProgressComplicationDataอนุญาตให้เกินเป้าหมายได้ (สำหรับRangedValueComplicationDataระบบจะจำกัดค่าให้อยู่ในช่วง [min .. max]) ซึ่งส่งผลต่อการออกแบบภาพที่ไม่เหมาะกับหน้าปัดบางรุ่นGoalProgressComplicationDataเพิ่มการรองรับแผนภูมิวงกลมและการแจกแจงข้อมูลแบบง่ายที่คล้ายกัน- เราได้เพิ่มการรองรับ
ColorRampsไปยังRangedValueComplicationDataโดยที่ไม่บังคับ - สำหรับ Android T เราได้เพิ่ม
ComplicationPersistencePolicyและsetCachePolicyลงในComplicationDataซึ่งปัจจุบันช่วยให้ผู้ให้บริการควบคุมได้ว่าข้อมูลแทรกจะคงอยู่หรือไม่ (กล่าวคือ ข้อมูลแทรกได้รับการแคชไว้หลังจากการรีบูตหรือไม่) ข้อมูลแทรกส่วนใหญ่ไม่จําเป็นต้องตั้งค่าการควบคุมแคช แต่การตั้งค่านี้จะช่วยแก้ไขกรณีที่พบไม่บ่อยซึ่งมีข้อมูลล้าสมัยสําหรับข้อมูลแทรกบางรายการที่อัปเดตบ่อย (เช่น ข้อมูลแทรกข้อมูลสุขภาพ) นอกจากนี้ เรายังได้เพิ่มComplicationDisplayPolicyโดยที่DO_NOT_SHOW_WHEN_DEVICE_LOCKEDจะสั่งให้หน้าปัดที่เข้ากันได้ไม่แสดงข้อมูลแทรกเมื่ออุปกรณ์ล็อกอยู่ (Ic9574)
การเปลี่ยนแปลง API
GoalProgressComplicationData,WeightedElementsComplicationDataและColorRampไม่ใช่เวอร์ชันทดลองอีกต่อไป (Ica9e2)- ตอนนี้
ComplicationPersistencePolicyและComplicationDisplayPolicyมีการทำเครื่องหมายเป็น T API อย่างถูกต้องแล้ว (I31d88) - ตอนนี้เครื่องมือสร้าง
ComplicationSlotOverlayที่เลิกใช้งานแล้วมีDeprecationLevel.WARNINGซึ่งช่วยให้เรียกใช้จาก Java ได้อีกครั้ง (Ib308c) - เราได้แก้ไขปัญหาความเข้ากันได้ของ Java บางรายการกับ
ComplicationRequestListener,CanvasComplication,ComplicationTapFilterและInteractiveWatchFaceClientโดยการกำกับเนื้อหาด้วย@JvmDefaultWithCompatibility(Id94fc) - เราได้นำ
ProtoLayoutComplicationDataและListComplicationDataเวอร์ชันทดลองออกแล้ว เรื่องราวสำหรับนักพัฒนาแอปเหล่านี้ไม่ชัดเจน เราหวังว่าจะได้กลับมาดูเรื่องนี้อีกครั้งในอนาคต (I9df05) - เราได้เพิ่ม
ValueTypeกลับไปยังRangedValueComplicationDataแล้ว ตอนนี้WeightedElementsComplicationDataรองรับสีพื้นหลังแล้ว เรานำDiscreteRangedValueComplicationDataออกแล้วเนื่องจากฟังก์ชันการทำงานเป็นส่วนหนึ่งของWeightedElementsComplicationData(I6446c)
การแก้ไขข้อบกพร่อง
- ใส่
isForScreenShotในโค้ดเท่ากับและโค้ดแฮช ตรวจสอบว่าonRenderParametersChangedได้รับค่าisForScreenshotที่ถูกต้อง (I04a41) - แก้ไขการรั่วไหลของ
WatchFaceControlServiceจากไคลเอ็นต์แบบ Headless (e90e00)
เวอร์ชัน 1.2.0-alpha03
5 ตุลาคม 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha03 ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-alpha03 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ไม่มีฟีเจอร์ใหม่ แต่เราได้แก้ไขข้อบกพร่องของเครื่องมือแก้ไขหน้าปัด 2 ข้อ
การเปลี่ยนแปลง API
- เลิกใช้งาน
UserStyleSchema.userStyleSettingsเนื่องจากrootUserStyleSettingsไม่ได้เป็นแบบทดลองแล้ว (Ie96e3) - ย้าย
rootUserStyleSettingsออกจากเวอร์ชันทดลอง (I8d6b3) - เราได้ทําเครื่องหมาย
WatchFaceColorsเป็นเวอร์ชันทดลองเนื่องจากระบบบางระบบไม่รองรับ (I6d75d) - แสดง
DisconnectReasonsใน API สาธารณะเพื่อให้ทำงานร่วมกับIntDefได้ (I791f8)
การแก้ไขข้อบกพร่อง
- ปิดเครื่องมือแก้ไขในนาฬิกาหาก
SysUIหมดพลังงาน หากSysUIหยุดทำงานและเครื่องมือแก้ไขหน้าปัดในนาฬิกาไม่ปิด หน้าปัดอาจอยู่ในสถานะที่ไม่สอดคล้องกันเนื่องจากระบบอาศัยSysUIเพื่อเก็บการเปลี่ยนแปลงสไตล์ของผู้ใช้ไว้(ba762a - แก้ไขปัญหาการรั่วไหลของหน่วยความจำใน
ComplicationDataSourceInfoRetrieverซึ่งการดําเนินการต่อของ kotlin coroutine ทําหน้าที่เป็นรูท gc และเก็บกิจกรรมของเครื่องมือแก้ไขไว้ (33ee06)
เวอร์ชัน 1.2.0-alpha02
21 กันยายน 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha02 ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-alpha02 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
หน้าปัดบางหน้ามีการกําหนดค่านอก
UserStyleที่ส่งผลต่อลักษณะที่ปรากฏ (เช่น การเลือกรูปภาพพื้นหลัง) เราได้เพิ่มRenderer.sendPreviewImageNeedsUpdateRequestซึ่งช่วยให้หน้าปัดขอรูปภาพตัวอย่างที่อัปเดตได้ โปรดทราบว่าการอัปเดตระบบที่เกี่ยวข้องเป็นสิ่งจําเป็นเพื่อให้การดําเนินการนี้ทํางานได้นอกจากนี้ เรายังได้เพิ่ม API สำหรับหน้าปัดเพื่อแสดงสีของหน้าปัดต่อระบบ ซึ่งอาจเลือกจานสีตามข้อมูลนี้ โปรดทราบว่าฟีเจอร์นี้อยู่ในช่วงการทดสอบในแพตช์ที่ตามมา
ปัจจุบัน
ComplicationDataเกือบทุกประเภทรองรับSmallImages
การเปลี่ยนแปลง API
- บางครั้งตัวจัดการวอลเปเปอร์อาจแยกออกจากเครื่องมือหนึ่งและสร้างเครื่องมืออื่น เราได้เพิ่ม
DisconnectReasonint def และขยายClientDisconnectListenerด้วยเมธอดใหม่ที่มีDisconnectReasonซึ่งช่วยให้ Listener สังเกตการแยกเครื่องยนต์ได้ (I45cce) - เพิ่มพารามิเตอร์ที่ไม่บังคับ 2 รายการ
nameResourceIdและscreenReaderResourceIdลงในตัวสร้างComplicationSlotOverlay(I157e8) - เราได้เพิ่มตัวแฝง Guava สำหรับ
getOrCreateInteractiveWatchFaceClientแบบโอเวอร์โหลดใหม่ที่มีPreviewImageUpdateRequestedListener(Ic31f0) - เราได้เพิ่ม
Renderer.sendPreviewImageNeedsUpdateRequestซึ่งมีประโยชน์สำหรับหน้าปัดที่มีสถานะอยู่นอกUserStyleSchemaซึ่งส่งผลต่อลักษณะที่ปรากฏ (เช่น หน้าปัดที่มีรูปภาพพื้นหลังที่เลือกได้) ในฝั่งไคลเอ็นต์ เราได้เพิ่มPreviewImageUpdateRequestedListenerเป็นแอตทริบิวต์ที่ไม่บังคับในgetOrCreateInteractiveWatchFaceClientเพื่อสังเกตคําขอเหล่านี้ (Iff44a) - เราได้ลดความซับซ้อนของ API สำหรับการแสดง
WatchFaceColorsแล้ว ตอนนี้มีพร็อพเพอร์ตี้ง่ายๆ ชื่อwatchFaceColorsในโปรแกรมแสดงผลที่หน้าปัดสามารถตั้งค่าได้ ซึ่งควรอัปเดตตามความจำเป็นเพื่อตอบสนองต่อการเปลี่ยนแปลงสไตล์ เราได้เพิ่มOnWatchFaceColorsListenerลงในInteractiveWatchFaceClientแทนการใช้WallpaperManagerเพื่อสังเกตการเปลี่ยนแปลงสี (I490bc) - เราได้เพิ่มคลาส
WatchFaceColorsซึ่งเก็บสีหน้าปัด 3 สีที่โดดเด่นที่สุด และเพิ่มเมธอดแบบเปิดwatchfaceColorsและnotifyWatchFaceColorsChangedลงในโปรแกรมแสดงผล ซึ่งช่วยให้ระบบรับสีของหน้าปัดผ่านWallpaperManager.getWallpaperColorsได้ (I3d611) - ตอนนี้
ShortTextComplicationData,RangedValueComplicationData,NoPermissionComplicationData(และDiscreteRangedValueComplicationData,GoalProgressComplicationDataและWeightedElementsComplicationDataเวอร์ชันทดลอง) ทั้งหมดรองรับSmallImagesแล้ว หากหน้าปัดเลือกที่จะแสดงผลข้อมูลแทรกด้วยหลายสี ตอนนี้หน้าปัดจะมีตัวเลือกให้ใช้SmallImageแบบหลายสี ซึ่งก่อนหน้านี้ต้องใช้รูปภาพโมโนโครม (I257df) - เปลี่ยนรูปแบบ
PreviewImageUpdateRequestedListenerเป็นConsumer<>แทน (Ia875d) - แทนที่เมธอดนามธรรมเดี่ยว (SAM) ประเภท
OnWatchfaceColorsListenerที่กําหนดเองด้วย SAM ประเภททั่วไปของ Java (Consumer) (I0c489) - เราได้เลิกใช้งานเมธอด
getOrCreateInteractiveWatchFaceClientและlistenableGetOrCreateInteractiveWatchFaceClientแบบเก่าที่ไม่ได้ระบุPreviewImageUpdateRequestedListener(Iec502)
การแก้ไขข้อบกพร่อง
- เปลี่ยนชื่อ
DisconnectReason.BINDER_DIEDเป็นDisconnectReason.ENGINE_DIEDแล้ว (I4eb0e)
เวอร์ชัน 1.2.0-alpha01
10 สิงหาคม 2022
androidx.wear.watchface:watchface-*:1.2.0-alpha01 ได้รับการปล่อยแล้ว เวอร์ชัน 1.2.0-alpha01 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เราได้เพิ่มการรองรับรูปแบบข้อมูลแทรกใหม่แบบทดลอง นี่เป็นพื้นที่ที่กำลังพัฒนาอยู่ รูปแบบใหม่เหล่านี้อาจมีการเปลี่ยนแปลงโดยไม่ต้องแจ้งให้ทราบ และขณะนี้
CanvasComplicationDrawableยังไม่รองรับโปรแกรมแสดงผล - นอกจากนี้ เรายังเพิ่มระยะขอบที่ไม่บังคับลงในช่องข้อมูลแทรก ซึ่งทำให้แตะข้อมูลแทรกขนาดเล็กได้ง่ายขึ้น
การเปลี่ยนแปลง API
- ตอนนี้คลาส
BoundingArcเวอร์ชันทดลองจะเปลี่ยนแปลงไม่ได้ (If624a) - ข้อมูลแทรกขนาดเล็กอาจแตะได้ยาก เพื่อเป็นการลดปัญหานี้ เราจึงได้เพิ่มการรองรับระยะขอบซึ่งจะเพิ่มพื้นที่ที่แตะได้โดยไม่ส่งผลต่อการเรนเดอร์
ComplciationSlotsจะมีระยะขอบขนาด 0 เว้นแต่จะระบุไว้ (ในโค้ดหรือผ่าน XML) (I14089) - เปลี่ยนลายเซ็น
getComplicationSlotInflationFactory(CurrentUserStyleRepository)ให้แสดงผลอินสแตนซ์ของ Factory ที่ไม่ใช่ค่า Null การคืนค่า Null ก่อนหน้านี้เป็นข้อผิดพลาด ดังนั้นการแก้ไขนี้เป็นเพียงการทำให้สัญญา API ชัดเจนขึ้น (I0fcc0) - เราได้เพิ่มอาร์กิวเมนต์
currentUserStyleRepositoryลงในเมธอดWatchFaceService.getComplicationSlotInflationFactoryเพื่อให้สอดคล้องกับcreateComplicationSlotsManager(I2ddd2) UserStyleFlavorsกลายเป็นฟีเจอร์ที่ไม่ใช่เวอร์ชันทดลอง (I69cdc)- เราได้นํา
ValueTypeเวอร์ชันทดลองออกจากRangedValueComplicationDataแล้ว และแทนที่ด้วยDiscreteRangedValueComplicationDataเวอร์ชันทดลอง ซึ่งเหมือนกับRangedValueComplicationDataยกเว้นช่วงและค่าจำนวนเต็ม นอกจากนี้ เรายังได้เปิดตัวGoalProgressComplicationDataเวอร์ชันทดลอง ซึ่งคล้ายกับRangedValueComplicationDataยกเว้นว่าGoalProgressComplicationDataมีไว้สำหรับความคืบหน้าตามเป้าหมายที่ค่าต่ำสุดโดยนัยคือ 0 และค่าที่อนุญาตต้องมากกว่าtargetValueหมายเหตุสำหรับตัวแปรRangedValueทั้งหมด คุณต้องระบุ monochromeImage, ข้อความ หรือชื่ออย่างน้อย 1 รายการ (I9590c) - เรานำ
boundsWithMarginsออกจากComplicationSlotStateแล้วเนื่องจากซอฟต์แวร์ระบบไม่มี Use Case สำหรับboundsWithMargins(I42e26) - เราได้เพิ่มการรองรับเวอร์ชันทดลองสำหรับ
WeightedElementsComplicationDataซึ่งประกอบด้วยอาร์เรย์ขององค์ประกอบ (คู่ของน้ำหนักและสี) พร้อมกับข้อความ/ชื่อ/รูปภาพ (ไม่บังคับ) ข้อมูลเหล่านี้อาจแสดงเป็นแผนภูมิวงกลมที่สีต้องสื่อความหมายตามบริบท เนื่องจากโดยทั่วไปแล้วแผนภูมิแบบซับซ้อนจะไม่มีพื้นที่เพียงพอที่จะแสดงผลป้ายกำกับ (I87eea) - ตอนนี้
ColorRampsเวอร์ชันทดลองซึ่งRangedValueComplicationDataและGoalProgressComplicationDataใช้หรือไม่ก็ได้ช่วยให้คุณระบุลำดับสีได้สูงสุด 7 สี และแฟล็กที่ระบุว่าควรใช้การเฟรมภาพสีอย่างราบรื่นหรือควรแสดงผลสีแบบทึบขนาดเท่าๆ กัน (I9f5bf) RangedValueComplicationData.drawSegmentedเปลี่ยนเป็นvalueTypeซึ่งเป็น int ที่มีValueType IntDefที่สอดคล้องกัน ซึ่งให้ความหมายเชิงอรรถศาสตร์กับค่าช่วง และอาจใช้โดยโปรแกรมแสดงข้อมูลแทรกเพื่อส่งผลต่อการจัดสไตล์ (I0616b)- เราได้เพิ่มการรองรับเวอร์ชันทดลองสำหรับ
ColorRangesที่ไม่บังคับไปยังRangedValueComplicationDataโดยปกติแล้ว ข้อมูลแทรกจะแสดงผลในสีที่หน้าปัดเลือก แต่บางครั้งComplicationDataSourceอาจเป็นตําแหน่งที่ดีที่สุดในการตั้งค่าสี เช่น เมื่อข้อมูลแทรกมีความหมายเชิงอรรถศาสตร์ เช่น สีแดงเป็นสีน้ำเงินสำหรับอุณหภูมิ (I5153a) - เราได้เพิ่มคำแนะนำ
drawSegmentedแบบทดลองลงในRangedValueComplicationDataแล้ว ซึ่งจะเป็นสัญญาณให้โปรแกรมแสดงผลวาดเครื่องหมายค่าช่วงที่มีส่วนของค่า โดย 1 ส่วน = 1 หน่วย (I7d7c1)
การแก้ไขข้อบกพร่อง
- เราได้เพิ่มความสามารถในการกำหนด
ComplicationSlotBoundsโดยสัมพันธ์กับระบบพิกัดหน้าจอที่กำหนดไว้ล่วงหน้า (I0985d)
เวอร์ชัน 1.1
เวอร์ชัน 1.1.1
10 สิงหาคม 2022
androidx.wear.watchface:watchface-*:1.1.1 ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.1 มีการคอมมิตเหล่านี้
- นี่เป็นรุ่นที่มีการแก้ไขข้อบกพร่องและขอแนะนําอย่างยิ่งให้ผู้ใช้เวอร์ชัน 1.1.0 อัปเกรด
การแก้ไขข้อบกพร่อง
การจัดเตรียมหน้าปัดเป็นแบบไม่พร้อมกัน และหากได้รับข้อมูลแทรกก่อนที่หน้าปัดจะพร้อม ระบบจะใส่ข้อมูลแทรกนั้นไว้ในรายการ
pendingInitialComplicationsและนำไปใช้ภายหลัง ขออภัยpendingInitialComplicationsมีผลใช้งานเร็วเกินไป ซึ่งหมายความว่ามีช่วงเวลาหนึ่งระหว่างการเริ่มต้นหน้าปัดซึ่งข้อมูลแทรกจะยังคงอยู่ในpendingInitialComplicationsและถูกละเว้น ปัญหานี้ได้รับการแก้ไขแล้ว นอกจากนี้ การแก้ไขนี้ยังแก้ไขข้อบกพร่องที่ComplicationRendererพยายามโหลดตัวยึดตำแหน่งแบบไม่พร้อมกันอย่างไม่ถูกต้อง ซึ่งทำให้อัปเดตกราฟิกการคอมไพล์ไม่ได้ สุดท้ายนี้ แพตช์นี้จะช่วยแก้ไขข้อบกพร่องทางทฤษฎีที่จำเป็นต้องผสานpendingInitialComplicationsหลายรายการ (0d03ba3)แก้ไขการล็อกตายที่อาจเกิดขึ้นใน
InteractiveInstanceManagerเมื่อgetExistingInstanceOrSetPendingWallpaperInteractiveWatchFaceInstanceถือล็อกไว้นานกว่าที่จำเป็น โดยปกติแล้วengine.setUserStyleจะทำงานได้อย่างรวดเร็ว แต่หากด้วยเหตุผลบางอย่างที่ทำงานช้า ผลลัพธ์ที่ได้อาจเป็น Deadlock/ANR แพตช์นี้จะย้ายงานที่ไม่จำเป็นออกจากล็อก ซึ่งจะช่วยลดโอกาสที่จะเกิดปัญหาการล็อกตาย (5a2adca)แก้ไขปัญหาหลายอย่างที่คง
WatchFaceServiceไว้ บางครั้ง WakeLock อาจเก็บWatchFaceServiceไว้ การเพิ่มการเรียกrelease()จะแก้ไขปัญหานี้ได้ นอกจากนี้StateFlowsยังเก็บWatchFaceServiceได้ การยกเลิกCoroutineScopesที่เกี่ยวข้องจะแก้ไขปัญหานี้ได้ (fd48138)เพิ่มการหมดเวลาลงใน
awaitDeferredWatchFace* และแก้ไขwatchfaceOverlayStyleNullPointerExceptionภายใต้สถานการณ์ปกติ การดำเนินการนี้จะไม่หมดเวลา รวมถึงหลังจากการติดตั้งใหม่และสถานการณ์DirectBootที่โหลด CPU สูง นอกจากนี้ เรายังแก้ไข NPE เมื่อเรียกgetWatchfaceOverlayStyleหลังclose()ด้วย (a4c3a5a)
เวอร์ชัน 1.1.0
15 มิถุนายน 2022
androidx.wear.watchface:watchface-*:1.1.0 ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0 มีคอมมิตเหล่านี้
การเปลี่ยนแปลงที่สําคัญตั้งแต่เวอร์ชัน 1.0.0
การแก้ไขที่ปรับปรุงใหม่
- เราได้เพิ่มการรองรับสคีมาแบบลําดับชั้น ซึ่งช่วยให้ UI เครื่องมือแก้ไขเขียนลําดับชั้นของสไตล์ได้ ตอนนี้คุณสามารถระบุไอคอนแยกต่างหากสำหรับการใช้งานในหน้าปัดและเครื่องมือแก้ไขสำหรับอุปกรณ์เสริมได้แล้ว
- มีการรองรับการเลือกใช้อินสแตนซ์หน้าปัดหลายรายการ โดยแต่ละอินสแตนซ์จะมีรหัสที่ไม่ซ้ำกันสำหรับแพลตฟอร์ม API ทั้งหมด
- ตอนนี้คุณระบุชื่อที่อ่านออกเสียงได้สําหรับ
ComplicationSlotsเพื่อใช้ในเครื่องมือแก้ไขได้แล้ว - การรองรับการทดลองสำหรับ "รูปแบบ" การจัดแต่ง ซึ่งคือรูปแบบที่คัดสรรมาซึ่งจะแสดงในเครื่องมือแก้ไขที่ใช้ร่วมกัน
- เมื่อโหลดอินสแตนซ์หน้าปัด 2 รายการสำหรับการแก้ไข อินสแตนซ์หน้าปัดจะแชร์ทรัพยากรได้ ซึ่งจะช่วยประหยัดหน่วยความจำ
- เมื่อเลือกข้อมูลแทรกในเครื่องมือแก้ไขหน้าปัด ระบบจะเลือกผู้ให้บริการปัจจุบันไว้ล่วงหน้า
ข้อมูลแทรกที่ปรับปรุงใหม่
- ตอนนี้คุณระบุ
ComplicationTypeสำหรับแหล่งข้อมูลหลักและรองได้แล้ว ซึ่งช่วยให้นักพัฒนาแอปมีความยืดหยุ่นมากขึ้นสำหรับประสบการณ์การใช้งานที่พร้อมใช้งานทันที - เราได้เพิ่ม
ComplicationDataTimelineซึ่งจะระบุลำดับข้อมูลแบบจำกัดเวลาที่จะส่งไปยังหน้าปัด ซึ่งสามารถแคชและอัปเดตโดยอัตโนมัติ เช่น พยากรณ์อากาศของวันนี้ในเวลาต่างๆ หรือกิจกรรมในปฏิทินหลายรายการที่กําลังจะเกิดขึ้น ComponentNameของผู้ให้บริการข้อมูลแทรกเป็นส่วนหนึ่งของComplicationData- ตอนนี้ระบบจะแคชข้อมูลแทรกไว้ ซึ่งจะช่วยให้คุณได้รับประสบการณ์การใช้งานที่ดีขึ้นเมื่อสลับไปมาระหว่างหน้าปัด
การเปลี่ยนแปลงอื่นๆ
- ตอนนี้คุณกำหนด
UserStyleSchemaและComplicationSlotsใน XML ได้แล้ว วิธีนี้ช่วยให้การสร้างหน้าปัดง่ายขึ้นและช่วยให้ระบบค้นหาข้อมูลเมตาได้เร็วขึ้น - ตอนนี้หน้าปัดสามารถกำหนดสีที่ใช้สำหรับการแสดงผลวางซ้อนของระบบได้แล้ว
เวอร์ชัน 1.1.0-rc01
18 พฤษภาคม 2022
androidx.wear.watchface:watchface-*:1.1.0-rc01 ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-rc01 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เราได้ทำการปรับเปลี่ยนบางอย่างเพื่อการใช้งานที่ง่ายขึ้นสำหรับการสนับสนุน XML ของหน้าปัด ซึ่งจะช่วยให้ระบุ
ComplicationSlotBoundsและข้อมูลอ้างอิงสนับสนุนได้ง่ายขึ้น การทดสอบข้อมูลแทรกในขอบBoundingArcยังคงดำเนินต่อไป โดยมีการต่อสายไปยังdrawHighlightแม้ว่าจะยังไม่แนะนําให้ใช้งานในตอนนี้
การเปลี่ยนแปลง API
- เราได้เพิ่มการโอเวอร์โหลดแบบทดลองของ
drawHighlightซึ่งยอมรับพารามิเตอร์BoundingArc(I705f8) - ตอนนี้ XML หน้าปัดรองรับการอ้างอิงทรัพยากรแล้ว ซึ่งช่วยให้คุณใช้ค่าคงที่เดียวกันทั้งใน XML และโค้ดได้ (I3ef61)
- เราได้เพิ่มความสามารถในการกำหนด
ComplicationSlotBoundsในรูปแบบcenter_x,center_y,size_x,size_yตอนนี้คุณยังใช้หน่วยอื่น (เช่น dp) โดยใช้การอ้างอิงทรัพยากรได้ด้วย (Iace98)
การแก้ไขข้อบกพร่อง
- แก้ไข
runBlockingWithTracingที่กำลังทำงานในบริบทที่ไม่ถูกต้อง (4f595fe) - ทำให้
BaseEditorSession.closeเป็นแบบซิงโครนัส ปัญหาของBaseEditorSession.closeแบบไม่เป็นแบบพร้อมกันคือเราเผยแพร่ComplicationDataSourceInfoRetrieverช้าเกินไป ซึ่งทำให้ระบบส่งสแปมคำเตือนใน logcat การดำเนินการนี้อาจไม่เป็นอันตราย แต่สแปม Logcat จะรบกวนสมาธิและควรหลีกเลี่ยง (35a5308)
เวอร์ชัน 1.1.0-beta02
11 พฤษภาคม 2022
androidx.wear.watchface:watchface-*:1.1.0-beta02 ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-beta02 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เราได้เพิ่มการรองรับ
ComplicationDataประเภทใหม่แบบทดลอง ซึ่งยังไม่พร้อมใช้งาน แต่โปรดติดตามข้อมูลอัปเดต
การเปลี่ยนแปลง API
- เราได้เพิ่ม
BoundingArcซึ่งเป็นคลาสทดลองที่อธิบายเรขาคณิตของช่องข้อมูลแทรกบนขอบ เราได้เพิ่มข้อมูลนี้ลงในComplicationSlotและส่งต่อไปยังComplicationSlotStateและWatchFaceMetadataClientแล้ว (I61a40) - เราได้เพิ่มความสามารถในการรับค่าการตั้งค่าใน
UserStyleSettingXML ซึ่งช่วยให้คุณลดการพูดซ้ำและแชร์การตั้งค่าระหว่างหน้าปัดได้ (Ief841) - เราได้เพิ่ม
ComplicationDataทดลองใหม่ 2 ประเภท ได้แก่ListComplicationDataและProtoLayoutComplicationDataขณะนี้ยังไม่มีการรองรับการแสดงผลสำหรับประเภทเหล่านี้ และ WearOS ยังไม่รู้จักประเภทเหล่านี้หากเพิ่มลงในไฟล์ ManifestComplicationDataSource's(I1811c)
การแก้ไขข้อบกพร่อง
- แก้ไขการจัดรูปแบบตามลําดับของประเภท
TimeLineEntryเราไม่ได้ทำการจัดรูปแบบประเภทTimeLineEntryซึ่งหมายความว่าระบบจะตีความTimeLineEntriesที่แคชไว้ซึ่งมีประเภท NoData อย่างไม่ถูกต้องว่ามีลักษณะเป็นประเภทของโรคแทรกซ้อนหลัก ซึ่งนำไปสู่ NPEs เมื่อมีการเข้าถึงช่องที่ต้องระบุซึ่งไม่มีอยู่ (55ffdf5) - แก้ไขข้อบกพร่องที่
setComplicationDataวางช่องไทม์ไลน์(fb392f5) - แก้ไขข้อบกพร่องที่บางครั้ง
runBlockingWithTracingจะทําให้เกิด NPE(12ca62e) - แก้ไขข้อบกพร่องที่บางครั้งเราได้รับ
ClassNotFoundException: android.support.wearable.complications.ComplicationTextเมื่อได้รับข้อมูลแทรก (217942d9) - แก้ไขข้อบกพร่องใน
GlesRenderer.backgroundThreadInitInternalที่เรียกonBackgroundThreadGlContextCreatedเฉพาะในกรณีที่มีการเรียกEGL14.eglCreateContextแก้ไขข้อบกพร่องอีกข้อที่ภาพหน้าจอแสดงภาพผิดพลาดเนื่องจากverticalFlip(c674ad2) - แก้ไขการตรวจสอบเวอร์ชัน XML ของ
WatchFaceServiceเนื่องจากระบบโหลดจากแพ็กเกจที่ไม่ถูกต้อง (dfa06f3) - ตอนนี้รูปแบบการต่อสายไฟของตำแหน่งโฆษณาใช้กลุ่มภายใน เราไม่ต้องการให้ตัวยึดตำแหน่งทำให้หน้าปัดที่มีอยู่ใช้งานไม่ได้ ซึ่งอาจใช้ a.s.w.c.ComplicationData ภายในที่ซ่อนอยู่ ก่อนหน้านี้รูปแบบการต่อสายของข้อมูล
NoDataComplicationจะจัดเก็บตัวยึดตําแหน่งในช่องปกติ (ซึ่งเป็นปัญหาเนื่องจากหน้าปัดเก่าจะแสดงผลสตริงตัวยึดตําแหน่งซึ่งไม่เป็นไปตามที่ต้องการ) แต่ตอนนี้เราใช้แพ็กเกจภายในเพื่อแยกข้อมูลนี้ออกอย่างสมบูรณ์ (d5e7bd2)
เวอร์ชัน 1.1.0-beta01
20 เมษายน 2022
androidx.wear.watchface:watchface-*:1.1.0-beta01 ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-beta01 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ตอนนี้เมธอด
WatchFaceMetadataClient(getUserStyleSchema,getComplicationSlotMetadataMap,getUserStyleFlavors) และHeadlessWatchFaceClient.getUserStyleFlavorsจะแสดง RuntimeException ที่ไม่ได้ตรวจสอบแทนWatchFaceException(I0718a) - ย้าย
WatchFaceMetadataClient.WatchFaceExceptionออกจากชั้นเรียนแล้วเพื่อให้ใช้ซ้ำได้ (I4e869)
การแก้ไขข้อบกพร่อง
WatchFaceMetadataClientจะไม่ขัดข้องอีกต่อไปเมื่อส่งComplicationSlotBoundsบางส่วน (Iaafd)
เวอร์ชัน 1.1.0-alpha05
6 เมษายน 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha05 ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-alpha05 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ตอนนี้คุณบอกได้ว่าแหล่งข้อมูลใดส่ง
ComplicationDataโดยการตรวจสอบComplicationData.dataSourceหน้าปัดบางหน้าอาจใช้ข้อมูลนี้เพื่อปรับแต่งการแสดงข้อมูลแทรก (I44a73)
การเปลี่ยนแปลง API
- ระบบเลิกใช้งาน
Renderer.CanvasRendererและRenderer.GlesRendererแล้วเพื่อใช้Renderer.CanvasRenderer2และRenderer.GlesRenderer2ซึ่งรองรับSharedAssetsที่ส่งไปยังเมธอดการแสดงผล เราได้เปิดตัวListenableCanvasRenderer2และListenableGlesRenderer2สำหรับการทำงานร่วมกันของ Java (I31ffa) - เพิ่มความสามารถในการกำหนด Flavors ให้กับ
@WatchFaceFlavorsExperimentalซึ่งเป็นรายการหน้าปัดที่มีสไตล์ที่กำหนดค่าไว้ล่วงหน้า (I04dd0) - ตอนนี้
Renderer.sharedAssetsเป็น StateFlow แล้ว และเราได้นําRenderer.SharedAssetsFactoryที่ไม่ได้ใช้ออกแล้ว (I12ac5) UserStyleSchema.userStyleSettingsไม่ได้เลิกใช้งานแล้ว (Iba7e3)- เราได้เพิ่ม
HeadlessWatchFaceClient.getUserStyleSchemaDigestHashซึ่งช่วยให้HeadlessWatchFaceClientหลีกเลี่ยงค่าใช้จ่ายเพิ่มเติมที่ค่อนข้างต่ำของการส่งสคีมาผ่าน AIDL ก่อนที่จะคํานวณแฮชข้อมูลสรุป (I33597) - เราได้เพิ่ม
isUserStyleSchemaStaticลงในWatchFaceMetadataClientซึ่งจะเป็นจริงก็ต่อเมื่อUserStyleSchemaเชื่อถือได้ว่าจะไม่มีการเปลี่ยนแปลง เว้นแต่จะมีการอัปเดต APK หน้าปัด (I45a3f) - เราได้เพิ่ม
getDigestHashลงในUserStyleSchemaซึ่งจะคํานวณแฮชข้อมูลสรุปของสคีมา ซึ่งสามารถใช้เพื่อระบุได้อย่างมีประสิทธิภาพว่าUserStyleSchemaมีการเปลี่ยนแปลงหรือไม่ (I2063d) - เปลี่ยนชื่อ
METADATA_KEY_DATA_SOURCE_DEFAULT_CONFIGURATION_SUPPORTEDเป็นMETADATA_KEY_DATA_SOURCE_DEFAULT_CONFIG_SUPPORTED(I9ba5d) UserStyleSetting.OnWatchEditorDataได้เปลี่ยนชื่อเป็นUserStyleSetting.WatchFaceEditorDataซึ่งมีข้อมูลที่เครื่องมือแก้ไขหน้าปัดบนนาฬิกาใช้เท่านั้น (If3afb)
เวอร์ชัน 1.1.0-alpha04
9 มีนาคม 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha04 ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-alpha04 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
ComplicationDataที่อัปเดตล่าสุดอาจไม่พร้อมใช้งานเสมอไป (เช่น ComplicationData ที่แคชไว้ซึ่งหมดอายุแล้ว) เราจึงขยายNoDataComplicationด้วย ComplicationData ตัวยึดตําแหน่งที่ไม่บังคับ และเพิ่มComplicationText.PLACEHOLDER,MonochromaticImage.PLACEHOLDER,SmallImage.PLACEHOLDER,PhotoImage.PLACEHOLDERซึ่งอนุญาตให้ใช้ในบริบทของตัวยึดตําแหน่งNoDataComplicationDataเท่านั้น หากเลือกไว้ ระบบจะแนะนำให้แสดงผลตัวยึดตำแหน่งเหล่านี้ด้วยกล่อง/ส่วนโค้งสีเทา (I6285d)- เราได้เพิ่ม
ComplicationData.getNextChangeInstantซึ่งจะบอกคุณถึงช่วงเวลาถัดไปหลังจากช่วงเวลาอ้างอิงซึ่งช่องใดก็ได้ของข้อมูลแทรกอาจเปลี่ยนแปลง ข้อมูลนี้ใช้ภายในเพื่อกำหนดเวลาเฟรมสำหรับการอัปเดตข้อมูลแทรก เช่น หากปกติหน้าปัดจะอัปเดต 1 ครั้งต่อนาที การตั้งค่าข้อมูลแทรกนาฬิกาจับเวลาจะทำให้หน้าปัดอัปเดต 1 ครั้งต่อวินาที (I7ceb2) - ตอนนี้
EditorSession.watchFaceIdใช้ได้กับ API ทุกระดับแล้ว นอกจากนี้ ค่าของWatchState.watchFaceInstanceIdจะสอดคล้องกับWatchState.watchFaceInstanceIdเสมอ (I323b9) - คุณไม่จำเป็นต้องใช้
getPendingIntentForTouchEventAPI อีกต่อไปเนื่องจากปัญหาพื้นฐานได้รับการแก้ไขในเฟรมเวิร์กแล้ว เราจึงนํา API ที่เกี่ยวข้องทั้งหมดออกแล้ว หน้าปัดไม่จำเป็นต้องดำเนินการใดๆ เป็นพิเศษเพื่อให้PendingIntentsเริ่มทำงาน แม้ว่าจะมีการกดปุ่มหน้าแรกไปเมื่อไม่นานก็ตาม (I1f2e8) - เราได้เพิ่ม
RendererParameters.isForScreenShotซึ่งจะเป็นจริงหากการแสดงผลมีไว้สำหรับภาพหน้าจอ หน้าปัดบางหน้าที่มีภาพเคลื่อนไหวจำเป็นต้องทราบข้อมูลนี้เพื่อทำการปรับเปลี่ยนเพื่อให้ได้ผลลัพธ์ที่ดีที่สุด (I96d99) - เราได้เพิ่ม
WatchFaceExceptionReasonลงในWatchFaceExceptionเพื่อให้บริบทเกี่ยวกับสิ่งที่ผิดพลาด (I01d15) - ระบบได้นำ
ComplicationDataSourceService.onImmediateComplicationRequestออกและเพิ่มComplicationRequest.immediateResponseRequiredแทนเพื่อบ่งบอกว่าผู้ให้บริการต้องตอบกลับอย่างรวดเร็ว (ควรตอบกลับภายในเวลาไม่ถึง 100 มิลลิวินาที) โปรดทราบว่าฟังก์ชันการทำงานนี้ได้รับการปกป้องโดยสิทธิ์com.google.android.wearable.permission.USE_IMMEDIATE_COMPLICATION_UPDATEที่มีสิทธิ์ (Ie6b23) - อัปเดต Nullability ใน Core และ AppCompat ให้ตรงกับ Tiramisu DP2 (I0cbb7)
การแก้ไขข้อบกพร่อง
- ตอนนี้แอปหน้าปัดจะขัดข้องพร้อมข้อยกเว้นหากการตรวจสอบสคีมาไม่สำเร็จ (Ia400f)
เวอร์ชัน 1.1.0-alpha03
9 กุมภาพันธ์ 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha03 ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-alpha03 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เราได้เพิ่มการรองรับแบบทดลองสำหรับสคีมารูปแบบแบบลําดับชั้น เราได้เพิ่มพร็อพเพอร์ตี้ใหม่ลงใน
androidx.wear.watchface.style.UserStyleSetting.Optionซึ่งก็คือ childSettings ซึ่งในตอนแรกมีเพียงListOptionที่ใช้เท่านั้น ซึ่งช่วยให้ UI ของเครื่องมือแก้ไขอธิบายลําดับชั้นของสไตล์ได้ โดย UserStyle พื้นฐานจะไม่เปลี่ยนแปลงและยังคงเป็นMap<String, ByteArray>(Iaf6f4) - เราได้เพิ่ม
WatchFace.OverlayStyleซึ่งช่วยให้หน้าปัดกำหนดค่าการแสดงผลของสถานะระบบที่วางซ้อนได้ (I8520d) - เราได้เปิดตัว
clearWithBackgroundTintBeforeRenderingHighlightLayerซึ่งเป็นพารามิเตอร์คอนสตรัคเตอร์ใหม่ที่ไม่บังคับสําหรับCanvasRenderer(ค่าเริ่มต้นคือเท็จ) หากตั้งค่าเป็น "จริง" ระบบจะล้างผืนผ้าแคนวาสด้วยสีของสีอ่อนของพื้นหลัง (Ie01e5) - เพิ่มคีย์ข้อมูลเมตา
androidx.watchface.complications.datasource.DEFAULT_CONFIGURATION_SUPPORTEDซึ่งช่วยให้แหล่งข้อมูลข้อมูลแทรกสามารถระบุได้ว่าสามารถระบุค่าเริ่มต้นได้โดยไม่ต้องมีการกำหนดค่าใดๆ (Icc0d4) - เป็นเรื่องปกติที่เมื่อแก้ไขหน้าปัดจะมีทั้งอินสแตนซ์แบบอินเทอร์แอกทีฟและแบบ Headless เราได้เปิดตัว
Renderer.SharedAssetsเพื่อช่วยประหยัดหน่วยความจำ ซึ่งช่วยให้โปรแกรมแสดงผลหน้าปัดแชร์ข้อมูลที่แก้ไขไม่ได้ (เช่น พื้นผิวและชิดเดอร์) ระหว่างอินสแตนซ์ได้GlesRenderer.setEglConfigและGlesRenderer.setEglDisplayเลิกใช้งานแล้ว เราไม่ได้เป็นให้ตั้งค่าได้ และการตั้งค่าดังกล่าวอาจทําให้ลักษณะการทํางานไม่ชัดเจน (I0d9e7) - เราได้เพิ่ม
setNameResourceIdและsetScreenReaderNameResourceId(ซึ่งอ้างอิงทรัพยากรสตริง) ลงในComplicationSlot.Builderและตัวรับที่เกี่ยวข้องในandroidx.wear.watchface.client.ComplicationSlotStateซึ่งจะช่วยให้ระบบดึงข้อมูลชื่อ ComplicationSlots เพื่อใช้ในเครื่องมือแก้ไขและโปรแกรมอ่านหน้าจอได้ (If6c6a) - ตอนนี้
WatchfaceMetadataClient.getUserStyleSchemaและgetComplicationSlotMetadataMapจะแสดงผลเป็นWatchFaceExceptionแทนRemoteException(I86f11) onSynchronousComplicationRequestและฟังก์ชันที่เกี่ยวข้องในComplicationDataSourceServiceได้เปลี่ยนชื่อเป็นonImmediateComplicationRequestแล้ว ฯลฯ (I87ba0)- ตัวแก้ไขหน้าปัดมีพื้นที่บนหน้าจอน้อยกว่าตัวแก้ไขในอุปกรณ์เสริมมาก จึงควรรองรับไอคอนที่แตกต่างกันสำหรับตัวแก้ไขหน้าปัด แพตช์นี้จะเพิ่ม
OnWatchEditorData(ปัจจุบันมีเพียงไอคอน) ลงใน UserStyleSettings ทั้งหมดและคลาส Option ตามความเหมาะสม (If1886) - เราได้เพิ่ม
@JvmOverloadsลงในตัวสร้างของ ListenableGlesRenderer เพื่อให้การทํางานร่วมกันของ Java ดีขึ้น (I2974a)
การแก้ไขข้อบกพร่อง
- ตอนนี้เครื่องมือสร้างของ
ListenableGlesRendererได้รับการทําเครื่องหมายเป็น@Throws(GlesException::class)อย่างถูกต้องแล้ว และตอนนี้คุณขยายคลาสนี้ใน Java ได้แล้ว (Iac6d0) - แก้ไขข้อบกพร่องเกี่ยวกับ
PhotoImageComplicationDatatapAction ที่ไม่ได้รับการจัดการอย่างถูกต้อง (I1cc30)
เวอร์ชัน 1.1.0-alpha02
12 มกราคม 2022
androidx.wear.watchface:watchface-*:1.1.0-alpha02 ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-alpha02 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ตอนนี้
ComplicationDataและคลาสย่อยที่เกี่ยวข้องมีการลบล้างเมธอด hashcode, equals และ toString แล้วเพื่อช่วยในการแก้ไขข้อบกพร่องและการทดสอบ ซึ่งทำให้ใช้งานได้ง่ายขึ้น
การเปลี่ยนแปลง API
- เมธอด
WatchfaceMetadataClientจะแสดงข้อผิดพลาดRemoteExceptionsอีกครั้งตามความเหมาะสม ซึ่งช่วยให้โค้ดไคลเอ็นต์ตรวจหาข้อผิดพลาดจากหน้าปัดได้ง่ายขึ้น (I78785) - ตอนนี้
ComplicationDataและคลาสย่อยมี hashcode, equals และ toString แล้ว (I24bc6)
เวอร์ชัน 1.1.0-alpha01
15 ธันวาคม 2021
androidx.wear.watchface:watchface-*:1.1.0-alpha01 ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-alpha01 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
ตอนนี้คุณกำหนด
UserStyleSchemaและComplicationSlotsใน XML ได้แล้ว ซึ่งทำให้การสร้างหน้าปัดง่ายขึ้น นอกจากนี้ การค้นหาWatchFaceMetadataClientยังเร็วขึ้นด้วยเนื่องจากไม่ต้องเชื่อมโยงกับบริการเพื่อรับข้อมูลเมตาWatchFaceMetadataClientและListenableWatchFaceMetadataClientไม่ได้อยู่ในช่วงทดลองอีกต่อไป และจะกลายเป็นส่วนหนึ่งของ API ที่เสถียร ระบบจะรองรับหน้าปัดหลายอินสแตนซ์ได้ (ไม่บังคับ) โดยแต่ละอินสแตนซ์จะมีตัวเลือกการจัดสไตล์ที่ผู้ใช้กำหนดไว้แตกต่างกัน ซึ่งจะปรากฏในเครื่องมือเลือกหน้าปัด หากต้องการเลือกใช้ฟีเจอร์นี้ หน้าปัดต้องมีแท็กข้อมูลเมตาต่อไปนี้ในไฟล์ Manifest<meta-data android:name="androidx.wear.watchface.MULTIPLE_INSTANCES_ALLOWED" android:value="true" />หน้าปัดบางหน้ามีสถานะที่ไม่ได้บันทึกไว้ใน
UserStyleเพื่อรองรับสถานะนี้และอินสแตนซ์หลายรายการ ตอนนี้รหัสอินสแตนซ์ของหน้าปัดพร้อมใช้งานผ่านWatchState.watchFaceInstanceIdแล้วระบบกำลังแคช
ComplicationDataเพื่อให้ข้อมูลแทรกแสดงทันทีเมื่อโหลด บางครั้งระบบจะแคชComplicationDataไว้ในหน่วยความจำ และบางครั้งไลบรารีหน้าปัดจะจัดเรียงตามลําดับ เมื่อแปลงเป็นอนุกรม การดำเนินการแตะที่เกี่ยวข้องจะหายไป หากเป็นเช่นนั้นComplicationData.tapActionLostDueToSerializationจะแสดงผลเป็นtrueและหน้าปัดควรแสดงผลข้อมูลแทรกในลักษณะอื่น (เช่น เป็นสีเทาหรือโปร่งแสงบางส่วน) เพื่อบ่งบอกว่าแตะไม่ได้ ระบบจะส่งComplicationDataที่อัปเดตแล้วพร้อมtapActionโดยเร็วที่สุดComplicationDataบางรายการไม่ควรแคชไว้เป็นเวลานาน เราจึงเพิ่มฟีเจอร์ทั่วไปอย่างComplicationDataTimelineเข้ามาเพื่อรองรับกรณีนี้ สามารถใช้เพื่อระบุลำดับComplicationDataที่จำกัดเวลาเพื่อส่งไปยังหน้าปัด ซึ่งสามารถแคชและอัปเดตโดยอัตโนมัติ เช่น พยากรณ์อากาศของวันนี้ในเวลาต่างๆ หรือกิจกรรมในปฏิทินหลายรายการที่กําลังจะเกิดขึ้นComplicationRequestListenerได้รับการขยายให้มีเมธอดใหม่onComplicationDataTimelineซึ่งคุณใช้เพื่อแสดงผลข้อมูลนี้ได้DefaultComplicationDataSourcePolicyได้รับการขยายการให้บริการเพื่อให้คุณระบุComplicationTypeสําหรับแหล่งข้อมูลหลักและรองได้เราได้เพิ่มการรองรับผู้ให้บริการข้อมูลแทรกแบบซิงค์ ซึ่งข้อมูลแทรกจะอัปเดตด้วยความถี่สูงกว่าปกติสูงสุด 1 ครั้งต่อวินาทีเมื่อหน้าปัดแสดงอยู่และไม่ใช่โหมดแอมเบียนท์ หมายเหตุ: ผู้ให้บริการข้อมูลแทรกแบบซิงโครนัสอาจมีการจำกัดการใช้งานเนื่องจากข้อกังวลด้านหน่วยความจำ
เราอาจเปลี่ยนการเปลี่ยนแปลง
PendingIntentTapListenerกลับ เนื่องจากเราแก้ปัญหาพื้นฐาน (หน้าปัดไม่สามารถเปิดใช้งานกิจกรรมเป็นเวลา 5 วินาทีหลังจากกดปุ่ม Home) ในเฟรมเวิร์กแทน
การเปลี่ยนแปลง API
ComplicationData.isCachedเปลี่ยนเป็นtapActionLostDueToSerializationซึ่งมีประโยชน์มากกว่าเมื่อต้องพิจารณาว่าควรแสดงผลช่องข้อมูลแทรกในลักษณะอื่นหรือไม่เพื่อบ่งบอกว่าแตะไม่ได้ (I6de2f)- เพิ่ม
ComplicationDataTimelineไปยังwear-complication-data-sourceแล้ว สามารถใช้เพื่อระบุลำดับComplicationDataที่จำกัดเวลาเพื่อส่งไปยังหน้าปัด ซึ่งสามารถแคชและอัปเดตโดยอัตโนมัติ เช่น พยากรณ์อากาศของวันนี้ในช่วงเวลาต่างๆ หรือกิจกรรมในปฏิทินหลายรายการที่กําลังจะเกิดขึ้นComplicationRequestListenerได้รับการขยายให้มีเมธอดใหม่onComplicationDataTimelineซึ่งคุณใช้เพื่อแสดงผลข้อมูลนี้ได้ มี Wrapper ของ Kotlin ใหม่SuspendingTimelineComplicationDataSourceServiceสำหรับระงับบริการแหล่งข้อมูล (Idecdc) - เพิ่ม
PendingIntentTapListenerและWatchFaceControlClient.getPendingIntentForTouchEventแล้ว ซึ่งจะช่วยหน้าปัดที่ต้องเปิด Intent เพื่อตอบสนองต่อการแตะเพื่อแก้ปัญหาที่เฟรมเวิร์กบล็อกการเปิดใช้งานใหม่เป็นเวลา 5 วินาทีหลังจากกดปุ่ม Home (I98074) - เปิดตัวแคช
ComplicationDataสำหรับหน้าปัดแต่ละหน้า การดำเนินการนี้มีวัตถุประสงค์เพื่อให้หน้าปัดแสดงค่าข้อมูลข้อมูลแทรกที่ทราบล่าสุดเมื่อโหลดจนกว่าระบบจะมีเวลาอัปเดต มีเมธอด API ใหม่WatchFaceControlClient.hasComplicationCacheสำหรับ OEM ซึ่งอาจส่งผลต่อกลยุทธ์ของระบบในการส่งข้อมูลแทรกไปยังหน้าปัด นอกจากนี้ComplicationDataยังมีพร็อพเพอร์ตี้isCachedและเราขอแนะนำให้แสดงผลข้อมูลแทรกที่แคชไว้แตกต่างกัน เนื่องจากระบบแคชtapActionไม่ได้และจะแสดงเป็นnullในข้อมูลแทรกที่แคชไว้ (I404b0) - รหัสอินสแตนซ์ของหน้าปัดพร้อมใช้งานแล้วผ่าน
WatchState.watchFaceInstanceIdหน้าปัดส่วนใหญ่ไม่จําเป็นต้องใช้คีย์นี้ แต่หากมีสถานะต่อหน้าปัดที่ไม่ได้จัดเก็บไว้ในสคีมา คีย์นี้จะเป็นคีย์ที่ใช้ระบุอินสแตนซ์หน้าปัด คุณสามารถระบุรหัสเมื่อโทรหาWatchFaceControlClient.createHeadlessWatchFaceClientได้แล้วเพื่อสนับสนุนการดำเนินการนี้ (I1ff98) DefaultComplicationDataSourcePolicyที่ขยายการให้บริการโดยสามารถตั้งค่าComplicationTypesเริ่มต้นสำหรับผู้ให้บริการหลัก รอง และผู้ให้บริการระบบสำรองComplicationSlot.defaultDataSourceTypeเลิกใช้งานแล้วในตอนนี้ (If0ce3)- ตอนนี้
ComplicationSlot.configExtrasเปลี่ยนแปลงได้และอัปเดตได้ก่อนเรียกใช้EditorSession.openComplicationDataSourceChooser()(I6f852) - เพิ่ม
WatchFace.setComplicationDeniedDialogIntentและsetComplicationRationaleDialogIntentแล้ว ระบบจะเปิดใช้งาน Intent เหล่านี้เพื่อแสดงกล่องโต้ตอบเหตุผลก่อนขอสิทธิ์ใช้ข้อมูลแทรก และกล่องโต้ตอบอีกรายการที่อธิบายว่าจำเป็นต้องมีสิทธิ์ใช้ข้อมูลแทรกเมื่อพยายามแก้ไขข้อมูลแทรกเมื่อถูกปฏิเสธสิทธิ์ (เครื่องมือเลือกผู้ให้บริการจะเปิดไม่สำเร็จ จึงต้องมีกล่องโต้ตอบ) (I3a29c) - ตอนนี้คุณกำหนด
UserStyleSchemaและComplicationSlotsใน XML ได้แล้ว วิธีนี้ช่วยให้การสร้างหน้าปัดง่ายขึ้นและทำให้WatchFaceMetadataClientค้นหาได้เร็วขึ้นเนื่องจากไม่จำเป็นต้องเชื่อมโยงกับบริการเพื่อรับข้อมูลเมตา (I85bfa) - เพิ่ม
InteractiveWatchFaceClient.supportsPendingIntentForTouchEventเพื่อให้ลูกค้าระบุได้ว่าหน้าปัดรองรับgetPendingIntentForTouchEventหรือไม่ (I0b917) WatchFaceMetadataClientและListenableWatchFaceMetadataClientไม่ได้อยู่ในขั้นทดลองอีกต่อไป สามารถใช้เพื่อรับข้อมูลเมตาของหน้าปัดได้อย่างมีประสิทธิภาพ หากเป็นไปได้โดยไม่ต้องเปิด Binder ไปยังหน้าปัด (Ibb827)- เพิ่มการรองรับผู้ให้บริการข้อมูลแทรกแบบซิงค์ซึ่งข้อมูลแทรกจะอัปเดตด้วยความถี่สูงกว่าปกติสูงสุด 1 ครั้งต่อวินาทีเมื่อหน้าปัดแสดงอยู่และไม่ใช่โหมดแอมเบียนท์ หากต้องการใช้ ผู้ให้บริการต้องใส่เมตาแท็ก
androidx.wear.watchface.complications.data.source.SYNCHRONOUS_UPDATE_PERIOD_SECONDSใหม่ในไฟล์ Manifest และลบล้างonSynchronousComplicationRequestนอกจากนี้ ยังอาจต้องลบล้างonStartSynchronousComplicationRequestsและonStopInteractiveComplicationRequestsเพื่อรับการแจ้งเตือนเมื่อข้อมูลแทรกเข้าสู่และออกจากโหมดอินเทอร์แอกทีฟ ทั้งนี้ขึ้นอยู่กับลักษณะของแหล่งข้อมูล (I8fe9d)
รุ่น 1.0
เวอร์ชัน 1.0.1
9 กุมภาพันธ์ 2022
androidx.wear.watchface:watchface-*:1.0.1 ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.1 มีคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขข้อบกพร่องเกี่ยวกับ
PhotoImageComplicationDatatapAction ที่ไม่ได้รับการจัดการอย่างถูกต้อง (I1cc30)
เวอร์ชัน 1.0.0
1 ธันวาคม 2021
androidx.wear.watchface:watchface-*:1.0.0 ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0 มีคอมมิตเหล่านี้
ฟีเจอร์หลักของ 1.0.0
แพ็กเกจ androidx.wear.watchface เป็นไลบรารีใหม่ที่แนะนำสำหรับการพัฒนาหน้าปัด WearOS ซึ่งจะมีฟีเจอร์ใหม่ๆ หลายรายการเมื่อเทียบกับไลบรารีการสนับสนุนอุปกรณ์ที่สวมใส่ได้แบบเก่า
- ไลบรารีรองรับการจัดสไตล์ของผู้ใช้โดยตรง (ดู
androidx.wear.watchface.style) เช่น การเปลี่ยนจานสี สไตล์เข็มนาฬิกา ลักษณะเครื่องหมายบอกเวลา เป็นต้น ตอนนี้การพัฒนาเครื่องมือแก้ไขหน้าปัดในนาฬิกาโดยใช้ androidx.wear.watchface.editor ทำได้ง่ายขึ้นมาก และคุณแก้ไขหน้าปัดได้จากแอปที่ใช้ร่วมกันของระบบโดยไม่ต้องเขียนโค้ดเพิ่มเติม - แนวทางปฏิบัติแนะนำที่ผสานรวมไว้แล้ว คลังจะสร้างป้ายกำกับเนื้อหาสำหรับโปรแกรมอ่านหน้าจอโดยอัตโนมัติสำหรับข้อมูลแทรก (คุณเพิ่มป้ายกำกับของคุณเองได้ด้วย) และอัตราเฟรมจะลดลงโดยอัตโนมัติเมื่อแบตเตอรี่เหลือน้อยและไม่ชาร์จเพื่อยืดอายุการใช้งานแบตเตอรี่
- คุณใช้โค้ดน้อยลงในการพัฒนาหน้าปัด โดยเฉพาะสำหรับข้อมูลแทรกที่ย้ายข้อมูลโค้ดที่ซ้ำกันจำนวนมากไปยังไลบรารีแล้ว
การแก้ไขข้อบกพร่อง
- แก้ไข
EditorSession.userStyle.compareAndSet(I6f676) - แก้ไขเวลาหน่วงของหน้าปัดสั้นมาก (Iffb97)
- เรียกใช้
InteractiveWatchFaceImpl.onDestroyในเธรด UI (I83340) - แก้ไขปัญหาหลายอย่างเกี่ยวกับตัวรับสัญญาณการออกอากาศ (I7d25f)
เวอร์ชัน 1.0.0-rc01
3 พฤศจิกายน 2021
androidx.wear.watchface:watchface-*:1.0.0-rc01 ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-rc01 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
แก้ไข dump() (เรียกโดย adb shell dumpsys) ซึ่งใช้งานไม่ได้เนื่องจากการย้ายข้อมูลขั้นตอน (087cf9e)
ตรวจสอบลําดับของ writeDirectBootPrefs ให้ถูกต้อง เราต้องการให้ writeDirectBootPrefs ทำงานหลังจาก initStyleAndComplications เสมอ ไม่เช่นนั้นเราอาจเสี่ยงที่จะเลื่อนเวลาเริ่มต้นเทรด UI (37650ac)
ตรวจสอบว่ามีการเรียก Renderer.onDestroy ในกรณีที่สร้างโปรแกรมแสดงผลแล้ว แต่ WF init ยังไม่เสร็จสมบูรณ์และมีการเรียกใช้ Engine.onDestroy เราจะต้องเรียกใช้ Renderer.onDestroy (f9952dc)
การเพิ่มประสิทธิภาพ/การแก้ไข isBatteryLowAndNotCharging แพตช์นี้จะย้ายการตั้งค่าเริ่มต้นของ isBatteryLowAndNotCharging ไปไว้ก่อนหน้านี้ ซึ่งหมายความว่าจะดำเนินการควบคู่ไปกับ createWatchFace ได้ นอกจากนี้ ตอนนี้เรายังรับฟัง ACTION_POWER_DISCONNECTED ด้วย (ddffd80
InteractiveWatchFaceClientImpl.isConnectionAlive เป็นเท็จหลังจากปิด (ab9774e)
เวอร์ชัน 1.0.0-beta01
27 ตุลาคม 2021
androidx.wear.watchface:watchface-*:1.0.0-beta01 ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta01 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.0.0-alpha24
13 ตุลาคม 2021
androidx.wear.watchface:watchface-*:1.0.0-alpha24 ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha24 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ระบบได้ย้ายชั้นเรียนในแพ็กเกจ
androidx.wear.watchface.complicationsไปยังโปรเจ็กต์wear:watchface:watchface-complicationsใหม่แล้ว โปรดทราบว่าคุณจะรวมทั้งไลบรารีนี้และwear:watchface:watchface-complications-dataเวอร์ชันอัลฟ่าก่อนหน้าไม่ได้ เนื่องจากคุณจะได้รับข้อผิดพลาดเกี่ยวกับคลาสที่ซ้ำกัน (I97195) - Renderer.dump เปลี่ยนชื่อเป็น Renderer.onDump และมีการกำกับเนื้อหาด้วย @UiThread (I44845)
- เปลี่ยนชื่อ
InteractiveWatchFaceClient.addWatchFaceReadyListenerเป็นaddOnWatchFaceReadyListenerและเปลี่ยนชื่อremoveWatchFaceReadyListenerเป็นremoveOnWatchFaceReadyListenerแล้ว (I48fea) - EditorSession
getComplicationsPreviewDataและgetComplicationsDataSourceInfoไม่ใช่ฟังก์ชันที่ระงับอีกต่อไป แต่คือพร็อพเพอร์ตี้StateFlow<>ที่มีค่าเป็น Null ในตอนเริ่มต้น ใน ListenableEditorSession เราได้นําgetListenableComplicationPreviewDataและgetListenableComplicationsProviderInfoออกแล้วเพื่อใช้ออบเจ็กต์StateFlow<>ใหม่จากคลาสพื้นฐาน หากต้องการตรวจสอบการเปลี่ยนแปลงในโค้ด Java ให้ลองใช้androidx.lifecycle.FlowLiveDataConversions.asLiveDataเพื่อแปลงเป็นLiveData<>(Ic5483)
เวอร์ชัน 1.0.0-alpha23
29 กันยายน 2021
androidx.wear.watchface:watchface-*:1.0.0-alpha23 ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha23 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
ตอนนี้ไลบรารีหน้าปัดเป็นกลุ่มไลบรารีเดียวแล้ว ไลบรารีจึงย้ายไปอยู่ที่อื่นและคุณจะต้องอัปเดตการนําเข้า gradle ดังนี้
| เครื่องเก่า | ใหม่ |
|---|---|
androidx.wear:wear-complications-data |
androidx.wear.watchface:watchface-complications-data |
androidx.wear:wear-complications-data-source |
androidx.wear.watchface:watchface-complications-data-source |
androidx.wear:wear-watchface |
androidx.wear.watchface:watchface |
androidx.wear:wear-watchface-complications-rendering |
androidx.wear.watchface:watchface-complications-rendering |
androidx.wear:wear-watchface-client |
androidx.wear.watchface:watchface-client |
androidx.wear:wear-watchface-client-guava |
androidx.wear.watchface:watchface-client-guava |
androidx.wear:wear-watchface-data |
androidx.wear.watchface:watchface-data |
androidx.wear:wear-watchface-editor |
androidx.wear.watchface:watchface-editor |
androidx.wear:wear-watchface-editor-guava |
androidx.wear.watchface:watchface-editor-guava |
androidx.wear:wear-watchface-guava |
androidx.wear.watchface:watchface-guava |
androidx.wear:wear-watchface-style |
androidx.wear.watchface:watchface-style |
การเปลี่ยนแปลง API
- ย้ายข้อมูล
androidx.wearไลบรารีหน้าปัดและข้อมูลแทรกแยกต่างหากไปยังกลุ่มไลบรารีandroidx.wear.watchface(b25f3c0) - เพิ่ม EditorRequest.canWatchFaceSupportHeadlessEditing เพื่อให้ไคลเอ็นต์ทราบว่าเครื่องมือแก้ไขหน้าปัดรองรับการแก้ไขแบบ Headless หรือไม่ โปรดทราบว่าจะมีผลลัพธ์ที่ผิดพลาดบางส่วนเนื่องจากมีการเพิ่มการรองรับใน asop/1756809 แต่ระบบจะแสดงผลลัพธ์ที่ถูกต้องสำหรับหน้าปัดทั้งหมดในอนาคต (ca55590)
- ตอนนี้โปรแกรมแสดงผลมีเมธอด dump() ซึ่งสามารถลบล้างเพื่อเพิ่มข้อมูลที่กําหนดเองลงในข้อมูลที่สร้างขึ้นโดยบริการกิจกรรม WatchFaceService ของเชลล์ ABD (95235f9)
- ตอนนี้ InteractiveWatchFaceClient.addWatchFaceReadyListener จะระบุผู้ดำเนินการก่อน (563ac2f)
- ระบบนำ StateFlowCompatHelper ออกแล้ว คุณควรใช้ asLiveData (androidx.lifecycle.asLiveData) แทน (bd35d3)
- CurrentUserStyleRepository.userStyle จะเปลี่ยนไม่ได้อีกต่อไป (I44889)
- เปลี่ยนชื่อ WatchFaceReadyListener เป็น OnWatchFaceReadyListener แล้ว (Ic12a9)
การแก้ไขข้อบกพร่อง
- InteractiveInstanceManager.deleteInstance เพื่อเรียก onDestroy ซึ่งจําเป็นเพื่อให้ระบบเก็บขยะ InteractiveWatchFaceImpl (fce4af8, b/199485839)