หน้าปัด Wear

สร้างแอปพลิเคชันสำหรับสมาร์ทวอทช์ Wear OS by Google

หมายเหตุ: Watch Face Format จำเป็นต้องใช้สำหรับการติดตั้งหน้าปัดในอุปกรณ์ที่ติดตั้ง Wear OS 5 ไว้ล่วงหน้าตั้งแต่วันที่ 10 กรกฎาคม 2024 และสำหรับหน้าปัดใหม่ทั้งหมดที่เผยแพร่ใน Google Play ตั้งแต่วันที่ 27 มกราคม 2025

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงที่แสดงต่อผู้ใช้ได้ในบทความนี้ในศูนย์ช่วยเหลือ

อัปเดตล่าสุด รุ่นที่เสถียร รุ่นที่อาจได้รับการเผยแพร่ รุ่นเบต้า เวอร์ชันอัลฟ่า
18 กันยายน 2024 1.2.1 - - 1.3.0-alpha04

การประกาศทรัพยากร 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-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 และค่าที่อนุญาตต้องมากกว่า targetValue
    • WeightedElementsComplicationData ซึ่งประกอบด้วยอาร์เรย์ขององค์ประกอบ (คู่ของน้ำหนักและสี) พร้อมกับข้อความ/ชื่อ/รูปภาพ (ไม่บังคับ) ข้อมูลเหล่านี้อาจแสดงเป็นแผนภูมิวงกลมที่สีต้องสื่อความหมายตามบริบท เนื่องจากโดยทั่วไปแล้วแผนภูมิแบบซับซ้อนจะไม่มีพื้นที่เพียงพอที่จะแสดงผลป้ายกำกับ
  • เราได้เพิ่มการรองรับ 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 มีการคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • เรากำลังดำเนินการเพิ่มการรองรับการเชื่อมโยงแพลตฟอร์มข้อมูลแทรกอยู่ แต่ยังไม่พร้อมใช้งานในตอนนี้ โปรดติดตามความคืบหน้าต่อไป
  • เราได้เพิ่มการรองรับ ComplicationSlot XML สำหรับข้อมูลแทรกประเภทใหม่อย่าง 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

  • บางครั้งตัวจัดการวอลเปเปอร์อาจแยกออกจากเครื่องมือหนึ่งและสร้างเครื่องมืออื่น เราได้เพิ่ม DisconnectReason int 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) ให้แสดงผลอินสแตนซ์ของโรงงานที่ไม่ใช่ค่า 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* และแก้ไข watchfaceOverlayStyle NullPointerException ภายใต้สถานการณ์ปกติ การดำเนินการนี้จะไม่หมดเวลา รวมถึงหลังจากการติดตั้งใหม่และสถานการณ์ 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)
  • เราได้เพิ่มความสามารถในการรับค่าการตั้งค่าใน UserStyleSetting XML ซึ่งช่วยให้คุณลดการพูดซ้ำและแชร์การตั้งค่าระหว่างหน้าปัดได้ (Ief841)
  • เราได้เพิ่มComplicationDataทดลองใหม่ 2 ประเภท ได้แก่ ListComplicationData และ ProtoLayoutComplicationData ปัจจุบันยังไม่มีการรองรับการแสดงผลสำหรับประเภทเหล่านี้ และ WearOS ยังไม่รู้จักประเภทเหล่านี้หากเพิ่มลงในไฟล์ Manifest ComplicationDataSource'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)
  • คุณไม่จำเป็นต้องใช้ getPendingIntentForTouchEvent API อีกต่อไปเนื่องจากปัญหาพื้นฐานได้รับการแก้ไขแล้วในเฟรมเวิร์ก เราจึงนํา 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)
  • แก้ไขข้อบกพร่องเกี่ยวกับPhotoImageComplicationData tapAction ที่ไม่ได้รับการจัดการอย่างถูกต้อง (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 ไว้ในหน่วยความจำ และบางครั้งไลบรารีหน้าปัดจะจัดเรียงตามลําดับ เมื่อแปลงเป็นซีเรียล ระบบจะลบ tapAction ที่เชื่อมโยงไว้ หากเกิดกรณีนี้ 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 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • แก้ไขข้อบกพร่องเกี่ยวกับPhotoImageComplicationData tapAction ที่ไม่ได้รับการจัดการอย่างถูกต้อง (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)