Wear

Tạo ứng dụng cho đồng hồ thông minh chạy hệ điều hành Wear OS của Google.

Bảng này liệt kê tất cả cấu phần phần mềm trong nhóm androidx.wear.

Cấu phần phần mềm Bản phát hành ổn định Bản phát hành dùng thử Bản phát hành beta Bản phát hành alpha
wear 1.2.0 - - 1.3.0-alpha04
wear-input 1.1.0 - - 1.2.0-alpha02
wear-input-testing 1.1.0 - - 1.2.0-alpha02
wear-ongoing 1.0.0 - - -
wear-phone-interactions 1.0.1 - - 1.1.0-alpha03
wear-remote-interactions 1.0.0 - - -
Lần gần nhất cập nhật thư viện này: ngày 25 tháng 1 năm 2023

Khai báo phần phụ thuộc

Để thêm một phần phụ thuộc trên Wear, bạn phải thêm kho lưu trữ Maven của Google vào dự án. Đọc nội dung Kho lưu trữ Maven của Google để biết thêm thông tin.

Thêm các phần phụ thuộc cho cấu phần phần mềm bạn cần trong tệp build.gradle cho ứng dụng hoặc mô-đun:

Groovy

dependencies {
    implementation "androidx.wear:wear:1.2.0"

    // Add support for wearable specific inputs
    implementation "androidx.wear:wear-input:1.1.0"
    implementation "androidx.wear:wear-input-testing:1.1.0"

    // Use to implement wear ongoing activities
    implementation "androidx.wear:wear-ongoing:1.0.0"

    // Use to implement support for interactions from the Wearables to Phones
    implementation "androidx.wear:wear-phone-interactions:1.0.1"
    // Use to implement support for interactions between the Wearables and Phones
    implementation "androidx.wear:wear-remote-interactions:1.0.0"
}

Kotlin

dependencies {
    implementation("androidx.wear:wear:1.2.0")

    // Add support for wearable specific inputs
    implementation("androidx.wear:wear-input:1.1.0")
    implementation("androidx.wear:wear-input-testing:1.1.0")

    // Use to implement wear ongoing activities
    implementation("androidx.wear:wear-ongoing:1.0.0")

    // Use to implement support for interactions from the Wearables to Phones
    implementation("androidx.wear:wear-phone-interactions:1.0.1")
    // Use to implement support for interactions between the Wearables and Phones
    implementation("androidx.wear:wear-remote-interactions:1.0.0")
}

Để biết thêm thông tin về các phần phụ thuộc, hãy xem bài viết Thêm phần phụ thuộc vào bản dựng.

Ý kiến phản hồi

Ý kiến phản hồi của bạn có thể giúp chúng tôi cải thiện Jetpack. Hãy cho chúng tôi biết nếu bạn phát hiện lỗi mới hoặc có ý tưởng cải thiện thư viện này. Vui lòng xem các lỗi hiện có trong thư viện này trước khi báo một lỗi mới. Bạn có thể thêm lượt bình chọn cho lỗi hiện có bằng cách nhấp vào nút dấu sao.

Báo lỗi mới

Xem tài liệu về Công cụ theo dõi lỗi để biết thêm thông tin.

Wear Phiên bản 1.3

Phiên bản 1.3.0-alpha04

Ngày 25 tháng 1 năm 2023

Phát hành androidx.wear:wear:1.3.0-alpha04. Phiên bản 1.3.0-alpha04 bao gồm các thay đổi sau.

Sửa lỗi

  • Chúng tôi đã cập nhật ảnh động trong SwipeDismissFrameLayout sao cho nhất quán với hoạt động triển khai nền tảng Wear và Wear Compose. (I7261b)

Phiên bản 1.3.0-alpha03

Ngày 24 tháng 8 năm 2022

Phát hành androidx.wear:wear:1.3.0-alpha03. Phiên bản 1.3.0-alpha03 bao gồm các thay đổi sau.

Tính năng mới

  • ArcLayout nay hỗ trợ trọng số mở rộng hoạt động theo cách tương tự như trọng số Bố cục (Layout) thông thường. Tức là bạn có thể chỉ định kích thước tương đối của phần tử con mà không cần trực tiếp tính toán các góc của phần tử con đó. Chúng tôi cũng bổ sung MaxAngleDegrees (hoạt động trên nguyên tắc tối đa có thể), nên dùng khi mở rộng phần tử con có trọng số. Ví dụ: bạn có thể thiết lập cung tròn bằng một số phần tử con có trọng số là 90 độ nhưng tuỳ chọn này cũng sẽ tuân theo khoảng trống tạo ra do phần tử bất kỳ không được mở rộng.

Thay đổi về API

  • Chúng tôi đã bổ sung trọng số vào ArcLayout.LayoutParams để cho phép một tiện ích mở rộng nhằm lấp đầy không gian hiện có, nếu có nhiều tiện ích thì tỷ lệ của tiện ích hiện có tương ứng với trọng số của chúng. Ngoài ra, chúng tôi cũng bổ sung ArcLayout.setMaxAngleDegrees để bạn có thể mở rộng phạm vi ở mức 90 độ (NB không ảnh hưởng đến bố cục của bất kỳ tiện ích con nào có kích thước cố định). Cuối cùng, ArcLayout.Widget nay có cả setSweepAngleDegrees cho phép ArcLayout thông báo cho một Tiện ích có kích thước khác 0. (I75f24)
  • Cập nhật tính chất rỗng của setColorFilter(I99ddf, b/236498063)

Phiên bản 1.3.0-alpha02

Ngày 23 tháng 2 năm 2022

Phát hành androidx.wear:wear:1.3.0-alpha02. Phiên bản 1.3.0-alpha02 bao gồm các thay đổi sau.

Tính năng mới

  • Hỗ trợ layoutDirection trên ArcLayout (I14d49)
  • Cải tiến thông báo mô tả nội dung của ConfirmationOverlay (I0fdf8)
  • Cập nhật ConfirmationOverlay với các biểu tượng/bố cục mới. (If5b54)

Sửa lỗi

  • Thêm các quy tắc ProGuard để đảm bảo việc giữ lại mã liên quan đến môi trường xung quanh (Idaa10)
  • Tránh được việc vô tình loại bỏ các phân đoạn trong SwipeDismissFrameLayout khi thực hiện thao tác hất (fling) theo chiều dọc (Idb6d8)
  • Khắc phục lỗi ConfirmationOverlay không có thông báo (I63e6f)

Đóng góp từ nguồn bên ngoài

  • Dae Gyu LEE (Samsung) – Tránh được việc vô tình loại bỏ các phân đoạn trong SwipeDismissFrameLayout khi thực hiện thao tác hất (fling) theo chiều dọc (Idb6d8)

Phiên bản 1.3.0-alpha01

Ngày 29 tháng 9 năm 2021

Phát hành androidx.wear:wear:1.3.0-alpha01. Phiên bản 1.3.0-alpha01 bao gồm các thay đổi sau.

Sửa lỗi

  • ConfirmationOverlay hiện sẽ đẩy biểu tượng lên để phù hợp với các thông báo dài hơn, để cho thông báo không rơi vào viền thiết bị (hoặc ngoài màn hình). (I54bff)

Wear Ongoing & Interactions Phiên bản 1.1.0

Phiên bản 1.1.0-alpha03

Ngày 9 tháng 3 năm 2022

Phát hành androidx.wear:wear-phone-interactions:1.1.0-alpha03. Phiên bản 1.1.0-alpha03 bao gồm các thay đổi sau.

Sửa lỗi

  • redirectUrl từ OAuthRequest hiện trả về một Chuỗi (String) trống nếu không thiết lập URL chuyển hướng trong một URL yêu cầu nhất định. (I44242)

Wear-Phone-Interactions Phiên bản 1.1.0-alpha02

Ngày 15 tháng 12 năm 2021

Phát hành androidx.wear:wear-phone-interactions:1.1.0-alpha02. Phiên bản 1.1.0-alpha02 bao gồm các thay đổi sau.

Sửa lỗi

  • Sửa các lỗi trong tài liệu về RemoteAuthClient, bao gồm lỗi trong đoạn mã mẫu và đường liên kết đến ErrorCode bị hỏng (I260e8)

Wear-Phone-Interactions Phiên bản 1.1.0-alpha01

Ngày 15 tháng 9 năm 2021

Phát hành androidx.wear:wear-phone-interactions:1.1.0-alpha01. Phiên bản 1.1.0-alpha01 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm thuộc tính redirectUrl vào OAuthRequest. (I98840, Ie684d)

Wear Ongoing & Interactions Phiên bản 1.0.0

Wear-Phone-Interactions Phiên bản 1.0.1

Ngày 15 tháng 12 năm 2021

Phát hành androidx.wear:wear-phone-interactions:1.0.1. Phiên bản 1.0.1 bao gồm các thay đổi sau.

Sửa lỗi

  • Sửa lỗi BridgingManager gửi ngoại lệ khi cố gắng tắt các thông báo cầu nối mà không có excludedTags.

Wear-Phone-Interactions Wear-Remote-Interactions Phiên bản 1.0.0

Ngày 15 tháng 9 năm 2021

Phát hành androidx.wear:wear-phone-interactions:1.0.0androidx.wear:wear-remote-interactions:1.0.0. Phiên bản 1.0.0 bao gồm các thay đổi sau.

Các tính năng chính của phiên bản 1.0.0

Thư viện Tương tác điện thoại (Phone Interaction Library) chứa các API để tương tác từ các thiết bị đeo chạy hệ điều hành Wear đến Điện thoại. Thư viện này bao gồm:

  • PhoneDeviceType, cung cấp các phương thức trợ giúp để xác định loại điện thoại đang được ghép nối (pair) với đồng hồ thông minh, chỉ dùng được trên các thiết bị đeo chạy hệ điều hành Wear.
  • Các API BridgingManager, BridgingManagerServiceBridgingConfig để bật/tắt thông báo trong thời gian chạy và tuỳ chọn thiết lập các thẻ dành cho các thông báo được miễn trừ khỏi chế độ cầu nối.
  • RemoteAuthClient, cung cấp tính năng hỗ trợ xác thực từ xa trên các thiết bị đeo chạy hệ điều hành Wear, cùng với tính năng hỗ trợ cho việc thêm phần mở rộng OAuth PKCE. Các trình xử lý và các lớp trợ giúp bổ sung để giao tiếp cũng được cung cấp.

Thư viện Tương tác từ xa (Remote Interaction Library) chứa các API để tương tác giữa các thiết bị đeo chạy hệ điều hành Wear và điện thoại. Thư viện này bao gồm:

  • WatchFaceConfigIntentHelper, cung cấp các hàm trợ giúp chỉ định giá trị nhận dạng và tên thành phần trong các hoạt động định cấu hình mặt đồng hồ cho ứng dụng đồng hành trên điện thoại.
  • Bạn có thể sử dụng lớp RemoteActivityHelper để mở các ý định trên các thiết bị khác (chẳng hạn như từ đồng hồ sang điện thoại).

Wear-Phone-Interactions Wear-Remote-Interactions Phiên bản 1.0.0-rc01

Ngày 1 tháng 9 năm 2021

Phát hành androidx.wear:wear-phone-interactions:1.0.0-rc01androidx.wear:wear-remote-interactions:1.0.0-rc01. Phiên bản 1.0.0-rc01 bao gồm các thay đổi sau.

Sửa lỗi

  • Sửa lỗi ngăn không cho các lỗi được nêu trong Dịch vụ Google Play được truyền tới phương thức gọi khi sử dụng RemoteActivityHelper (I60d60)
  • Khắc phục lỗi RemoteActivityHelper sẽ hoàn toàn không thực hiện phương thức Future nếu không có nút (node) nào được kết nối hoặc nếu không tìm thấy nodeId được yêu cầu (I60d60)

Wear-Ongoing Phiên bản 1.0.0

Ngày 1 tháng 9 năm 2021

Phát hành androidx.wear:wear-ongoing:1.0.0. Phiên bản 1.0.0 bao gồm các thay đổi sau.

Các tính năng chính của phiên bản 1.0.0

  • API Wear Ongoing Activities là API dành cho các nhà phát triển, bao gồm cả các nhà phát triển bên thứ ba, dùng để đánh dấu hoạt động của họ là “Hoạt động đang diễn ra” (Ongoing Activity) và cung cấp thông tin cần thiết.
  • Hoạt động đang diễn ra chỉ đến các hoạt động có thể đang chạy trong nền của đồng hồ (ví dụ: các bài tập thể dục, cuộc gọi và nội dung nghe nhìn). Trên Wear 3, một hoạt động được khai báo là đang diễn ra sẽ được hiển thị nổi bật hơn thông qua một biểu tượng lớp phủ chuyên dụng trên mặt đồng hồ cũng như hình ảnh hiển thị khác trong trình chạy ứng dụng.
  • Để biết thêm thông tin, hãy xem Hướng dẫn Wear Ongoing Activity (Hoạt động Wear Đang diễn ra)

Wear-Phone-Interactions Wear-Remote-Interactions Phiên bản 1.0.0-beta01

Ngày 18 tháng 8 năm 2021

Phát hành androidx.wear:wear-phone-interactions:1.0.0-beta01androidx.wear:wear-remote-interactions:1.0.0-beta01. Phiên bản 1.0.0-beta01 bao gồm các thay đổi sau.

Thay đổi về API

  • Đổi tên lớp RemoteIntentHelper thành RemoteActivityHelper. Đổi tên các hàm RemoteIntentHelper#getRemoteIntentExtraIntentRemoteIntentHelper#getRemoteIntentNodeId thành RemoteActivityHelper#getTargetIntentRemoteActivityHelper#getTargetNodeId. (Id2042)

Wear-Ongoing Phiên bản 1.0.0-rc01

Ngày 18 tháng 8 năm 2021

androidx.wear:wear-ongoing:1.0.0-rc01 được phát hành mà không có sự thay đổi nào so với phiên bản 1.0.0-beta01. Phiên bản 1.0.0-rc01 bao gồm các thay đổi sau.

Wear-Ongoing Phiên bản 1.0.0-beta01

Ngày 4 tháng 8 năm 2021

Phát hành androidx.wear:wear-ongoing:1.0.0-beta01. Phiên bản 1.0.0-beta01 bao gồm các thay đổi sau.

Thay đổi về API

  • Một số phương thức setter trên On ongoingActivity.Builder hiện chấp nhận đối số rỗng để tạo tính đối xứng và tính nhất quán cho các phương thức setter và getter (I17ee5)

Wear-Phone-Interactions Phiên bản 1.0.0-alpha07

Ngày 4 tháng 8 năm 2021

Phát hành androidx.wear:wear-phone-interactions:1.0.0-alpha07. Phiên bản 1.0.0-alpha07 bao gồm các thay đổi sau.

Thay đổi về API

  • WearTypeHelper.isChinaDevice đã đổi tên thành WearTypeHelper.isChinaBuild. (I47302)
  • Chúng tôi đã cập nhật thư viện RemoteAuthClient để tự động chọn redirect_uri dựa trên loại thiết bị (RoW/China). (I38866)
  • Sử dụng ClassCastException để khắc phục lỗi khiến cho việc chuyển đổi BridgingConfig sang/từ Bundle không thành công. Thêm các phương thức kiểm thử đơn vị cho lớp BragingManagerService. (I68ecb)

Wear-Remote-Interactions Phiên bản 1.0.0-alpha06

Ngày 4 tháng 8 năm 2021

Phát hành androidx.wear:wear-remote-interactions:1.0.0-alpha06. Phiên bản 1.0.0-alpha06 bao gồm các thay đổi sau.

Wear-Phone-Interactions Phiên bản 1.0.0-alpha06

Ngày 21 tháng 7 năm 2021

Phát hành androidx.wear:wear-phone-interactions:1.0.0-alpha06. Phiên bản 1.0.0-alpha06 bao gồm các thay đổi sau.

Thay đổi về API

  • Lớp BridgingManagerSeviceBinder nay là lớp con của Service và được đổi tên thành BridgingManagerSevice. (I9fca2)
  • Phương thức RemoteAuthClient.Callback.onAuthorizationError được thay đổi để đưa vào tham số OAuthRequest. Các phương thức yêu cầu lệnh gọi lại hiện cũng yêu cầu phải chạy trình thực thi của lệnh gọi lại đó. (I35e11)

Sửa lỗi

  • Chúng tôi đã làm cho API xác thực trở nên rõ ràng hơn với nhiều tham số được ghi lại hơn và bằng cách sử dụng các thuộc tính khi có thể. (I12287)

Wear-Phone-Interactions Phiên bản 1.0.0-alpha05

Ngày 30 tháng 6 năm 2021

Phát hành androidx.wear:wear-phone-interactions:1.0.0-alpha05. Phiên bản 1.0.0-alpha05 bao gồm các thay đổi sau.

Sửa lỗi

  • Các tham số được ghi lại sẽ được chuyển vào hàm khởi tạo của BridgingConfig.Builder.

Wear-Ongoing Phiên bản 1.0.0-alpha06

Ngày 2 tháng 6 năm 2021

Phát hành androidx.wear:wear-ongoing:1.0.0-alpha06. Phiên bản 1.0.0-alpha06 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm trường Title (Tiêu đề) vào Hoạt động đang diễn ra (Ongoing Activity). (I7a405)

Sửa lỗi

  • SerializationHelper.copy() nay tạo một bản sao của thông tin với mục đích bảo vệ (I8b276)
  • Cải thiện tài liệu setCategory (Iff01f)

Wear-Ongoing Phiên bản 1.0.0-alpha05

Ngày 18 tháng 5 năm 2021

Phát hành androidx.wear:wear-ongoing:1.0.0-alpha05. Phiên bản 1.0.0-alpha05 bao gồm các thay đổi sau.

Thay đổi về API

  • OngoingActivity hiện có các phương thức getter để truy xuất tất cả các giá trị được Builder thiết lập trực tiếp (hoặc các giá trị mặc định được lấy từ Notification đã liên lết). (Id8ac8)

    • Lớp mới Status hiện được dùng để tạo trạng thái của OngoingActivity
    • OngoingActivityDataOngoingActivityStatus không còn là một phần của API công khai.
  • Các lớp TextStatusPartTimerStatusPart không còn là một phần của API công khai. (I57fb6)

    • Để tạo một Part với văn bản tĩnh, hãy sử dụng Status.TextPart.
    • Để tạo một Part với đồng hồ bấm giờ (đếm lên), hãy sử dụng Status.Stopwatch
    • Để tạo một Part với đồng hồ hẹn giờ (đếm ngược), hãy sử dụng Status.Timer

Wear-Ongoing Phiên bản 1.0.0-alpha04

Ngày 5 tháng 5 năm 2021

Phát hành androidx.wear:wear-ongoing:1.0.0-alpha04. Phiên bản 1.0.0-alpha04 bao gồm các thay đổi sau.

Thay đổi về API

  • Tại OngoingActivity, hiện tại các phương thức fromExistingOngoingActivity được gọi là recoverOngoingActivity.
  • OngoingActivity hiện có một tập hợp đầy đủ các phương thức getter, tập phương thức này trước đó chỉ có tại OngoingActivityData. (I0ee4d)

Wear-Remote-Interactions Phiên bản 1.0.0-alpha05

Ngày 21 tháng 7 năm 2021

Phát hành androidx.wear:wear-remote-interactions:1.0.0-alpha05. Phiên bản 1.0.0-alpha05 bao gồm các thay đổi sau.

Thay đổi về API

  • Chúng tôi thêm lớp RemoteIntentHelper (trước đây là RemoteIntent trong Thư viện hỗ trợ Wearable) có thể dùng để mở các ý định trên các thiết bị khác (chẳng hạn như từ đồng hồ sang điện thoại). (I1d7e0)

  • Lớp PlayStoreAvailability đã bị xoá khỏi thư viện AndroidX. Để phát hiện xem Cửa hàng Play có dùng được trên một điện thoại đã kết nối hay không, hãy sử dụng phương thức androidx.phone.interactions.PhoneTypeHelper.getPhoneDeviceType để xác định xem điện thoại đã kết nối có phải là điện thoại Android hay không. Sau đó, hãy sử dụng phương thức androidx.wear.utils.WearTypeHelper.isChinaDevice để xác định xem điện thoại đã kết nối có phải là thiết bị Trung Quốc hay không. Nếu điện thoại đã kết nối là điện thoại Android và không phải là thiết bị Trung Quốc thì Cửa hàng Play sẽ có sẵn trên thiết bị. (Ie7dec)

Wear-Phone-Interactions Phiên bản 1.0.0-alpha04

Ngày 7 tháng 4 năm 2021

Phát hành androidx.wear:wear-phone-interactions:1.0.0-alpha04. Phiên bản 1.0.0-alpha04 bao gồm các thay đổi sau.

Thay đổi về API

  • Đã cập nhật các hằng số ErrorCode để giúp thư viện mới tương thích ngược với phương thức triển khai trong Thư viện hỗ trợ Wearable.

Sửa lỗi

  • Khắc phục ngoại lệ do API OAuth mới gây ra khi bắt đầu một phiên OAuth.

Wear-Remote-Interactions Phiên bản 1.0.0-alpha03

Ngày 7 tháng 4 năm 2021

Phát hành androidx.wear:wear-remote-interactions:1.0.0-alpha03. Phiên bản 1.0.0-alpha03 bao gồm các thay đổi sau.

Thay đổi về API

  • Thay đổi PlayStoreAvailability thành một lớp chứa đối tượng đồng hành có các phương thức tĩnh. Cách sử dụng không thay đổi.

Sửa lỗi

  • Đã sửa tài liệu tóm tắt của WatchFaceConfigIntentHelper để hiển thị chính xác mã mẫu kèm theo các ký tự HTML thực tế.

Wear-Ongoing Wear-Phone-Interactions Phiên bản 1.0.0-alpha03

Ngày 10 tháng 3 năm 2021

Phát hành androidx.wear:wear-ongoing:1.0.0-alpha03androidx.wear:wear-phone-interactions:1.0.0-alpha03. Phiên bản 1.0.0-alpha03 bao gồm các thay đổi sau.

Tính năng mới

  • Di chuyển OAuthClient từ Thư viện hỗ trợ Wearable sang AndroidX. Sau khi được di chuyển, lớp này sẽ được đổi tên thành RemoteAuthClient và hỗ trợ việc xác thực từ xa trên các thiết bị đeo chạy hệ điều hành Wear, đồng thời hỗ trợ việc thêm phần mở rộng OAuth PKCE. Các trình xử lý và các lớp trợ giúp bổ sung để giao tiếp cũng được cung cấp.
  • Giờ đây, bạn có thể sử dụng hàm khởi tạo OngoingActivity.Builder mới để liên kết các Hoạt động đang diễn ra với một Thông báo có thẻ.

Thay đổi về API

  • Thêm tính năng hỗ trợ thẻ thông báo trên Thư viện Hoạt động đang diễn ra (I653b4)
  • Di chuyển OAuthClient từ Thư viện hỗ trợ Wear sang AndroidX và thêm tính năng hỗ trợ cho phần mở rộng OAuth PKCE (I3eaaa)

Wear-Remote-Interactions Phiên bản 1.0.0-alpha02

Ngày 10 tháng 3 năm 2021

Phát hành androidx.wear:wear-remote-interactions:1.0.0-alpha02. Phiên bản 1.0.0-alpha02 bao gồm những thay đổi sau.

Tính năng mới

  • Di chuyển lớp PlayStoreAvailability từ Thư viện hỗ trợ Wearable sang AndroidX nhằm cung cấp một API để kiểm tra xem Cửa hàng Play có hoạt động trên Điện thoại hay không.

Sửa lỗi

  • Di chuyển lớp PlayStoreAvailability từ Thư viện hỗ trợ Wearable sang AndroidX. (I69bfe)

Phiên bản 1.0.0-alpha02

Ngày 10 tháng 2 năm 2021

Phát hành androidx.wear:wear-ongoing:1.0.0-alpha02androidx.wear:wear-phone-interactions:1.0.0-alpha02. Phiên bản 1.0.0-alpha02 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm tính năng hỗ trợ dành cho trạng thái phức tạp hơn. Tính năng hỗ trợ này bao gồm một (hoặc một số) mẫu và một loạt các Part sẽ được dùng để lấp đầy các phần giữ chỗ của mẫu đó. OngoingActivityStatus hiện đang có một phương thức tĩnh để tạo các trạng thái đơn giản chỉ gồm một Part (Text hoặc Timer) và Builder để tạo các trạng thái phức tạp hơn. (I1fe81)
  • Di chuyển các lớp BridgingManager và BridgingConfig từ Thư viện hỗ trợ Wear sang AndroidX nhằm cung cấp các API để bật/tắt thông báo trong thời gian chạy và tuỳ chọn thiết lập các thẻ dành cho các thông báo được miễn trừ khỏi chế độ cầu nối. (I3a17e)

Phiên bản 1.0.0-alpha01

Ngày 27 tháng 1 năm 2021

Phát hành androidx.wear:wear-ongoing:1.0.0-alpha01, androidx.wear:wear-phone-interactions:1.0.0-alpha01androidx.wear:wear-remote-interactions:1.0.0-alpha01. Phiên bản 1.0.0-alpha01 bao gồm các thay đổi sau.

Thay đổi về API

  • Di chuyển thư viện Ongoing Activities sang một thư viện phụ mới: wear-ongoing. Các lớp hiện đang hoạt động trong gói androidx.wear.ongoing (trước đây là androidx.wear.ongoingactivities) (I7c029)

  • Tạo một thư viện hỗ trợ mới để chứa các lớp hỗ trợ các hoạt động tương tác từ các Thiết bị đeo chạy hệ điều hành Wear đến Điện thoại. Thư viện này ban đầu chứa các lớp được di chuyển từ Thư viện hỗ trợ Wearable. (Id5180)

  • Di chuyển lớp PhoneDeviceType từ Thư viện hỗ trợ Wearable sang AndroidX. Lớp này sau khi đã di chuyển được đổi tên thành PhoneTypeHelper và cung cấp các phương thức trợ giúp để xác định loại điện thoại đang được ghép nối (pair) với đồng hồ thông minh, chỉ dùng được trên các thiết bị đeo chạy hệ điều hành Wear. (Ibd947)

  • Tạo một thư viện hỗ trợ mới để chứa các lớp hỗ trợ các hoạt động tương tác giữa các Thiết bị đeo chạy hệ điều hành Wear và Điện thoại. Thư viện này ban đầu chứa các lớp được di chuyển từ Thư viện hỗ trợ Wearable.. (I9deb4)

  • Di chuyển lớp WatchFaceCompanion từ Thư viện hỗ trợ Wearable sang AndroidX. Lớp này sau khi đã di chuyển được đổi tên thành WatchFaceConfigIntentHelper và cung cấp các hàm trợ giúp chỉ định ID và tên thành phần trong các hoạt động định cấu hình mặt đồng hồ cho ứng dụng đồng hành trên điện thoại. Lớp này cũng có thể được dùng cục bộ để định cấu hình mặt đồng hồ trên thiết bị đeo. (Ia455f)

Wear Complications và Watchface 1.0.0

Phiên bản 1.0.0-alpha22

Ngày 15 tháng 9 năm 2021

Phát hành androidx.wear:wear-*:1.0.0-alpha22. Phiên bản 1.0.0-alpha22 bao gồm các thay đổi sau.

Tính năng mới

  • EditorSession hiện sẽ đăng ký những trình quan sát chu trình hoạt động và không còn cần bạn phải đóng một cách rõ ràng khi hoạt động của bạn không còn nữa.

Thay đổi về API

  • EditorSession và ListenableEditorSession hiện đang sử dụng kotlin StateFlows đối với complicationSlotsState, ComplicationsPreviewData và ComplicationsDataSourceInfo. (I761d9)
  • EditorSession#userStyle hiện là một MutableStateFlow<UserStyle> (I32ca9)
  • EditorSession.createOnWatchEditorSession hiện đang sử dụng trình quan sát vòng đời sẽ tự động đóng khi quan sát thấy onDestroy. Ngoài ra, createOnWatchEditorSession hiện chỉ yêu cầu hoạt động được chuyển vào. Những thay đổi tương tự như trên cũng đã được áp dụng cho ListenableEditorSession. (Ic6b7f)
  • Hàm khởi tạo của CustomValueUserStyleSetting đã được khôi phục dưới dạng một phần của API công khai. (I2e69a)
  • Giờ đây, UserStyle kế thừa từ Map<UserStyleSetting, UserStyleSetting.Option>MutableUserStyleSetting#put sẽ gửi IllegalArgumentException nếu chế độ cài đặt không có trong giản đồ hoặc nếu tuỳ chọn không phù hợp với chế độ cài đặt. (Iba40f)

Phiên bản 1.0.0-alpha21

Ngày 1 tháng 9 năm 2021

Phát hành androidx.wear:wear-*:1.0.0-alpha21. Phiên bản 1.0.0-alpha21 bao gồm các thay đổi sau.

Thay đổi về API

  • Hiện tại, tất cả các API công khai của mặt đồng hồ, ứng dụng khách, trình chỉnh sửa và vùng chức năng đều sử dụng java.time.Instant để hiển thị thời gian thay vì Long. Do đó, cấp API tối thiểu đã tăng lên 26. (I3cd48)
  • Các API của mặt đồng hồ và vùng chức năng hiện sử dụng ZonedDateTime không thể thay đổi thay vì Calendar. (I25cf8)
  • ComplicationSlots hiện được khởi tạo với NoDataComplicationData, ComplicationSlot.complicationData hiện luôn có giá trị và CanvasComplicationDrawable.complicationData không thể nhận giá trị rỗng. (I4dfd6) Điều này giúp giảm (nhưng không loại bỏ) hiện tượng vùng chức năng nhấp nháy khi chuyển đổi giữa các mặt đồng hồ.

Phiên bản 1.0.0-alpha20

Ngày 18 tháng 8 năm 2021

Phát hành androidx.wear:wear-*:1.0.0-alpha20. Phiên bản 1.0.0-alpha20 bao gồm các thay đổi sau.

Thay đổi về API

  • Chúng tôi thêm createFallbackPreviewData vào ComplicationDataSourceInfo. Bạn có thể sử dụng ComplicationDataSourceInfo khi ComplicationDataSourceInfoRetriever.retrievePreviewComplicationData trả về giá trị rỗng. (I38c4d)
  • ComplicationDataSourceUpdateRequester đã được chuyển thành một giao diện để thực hiện mô phỏng trong các phương thức kiểm thử đơn vị. Bạn có thể xây dựng một ComplicationDataSourceUpdateRequester cụ thể bằng ComplicationDataSourceUpdateRequester.create(). (I7da22)
  • RenderParameters.pressedComplicationSlotIds đã được thay thế bằng RenderParameters.lastComplicationTapDownEvents. Nhờ đó, lớp TapEvent mới sẽ chứa một bộ ba các toạ độ x, y của thao tác nhấn bằng pixel và dấu thời gian. WatchFace.TapListener.onTap đã được thay thế bằng onTapEvent(@TapType tapType: Int, tapEvent: TapEvent). Ngoài ra, InteractiveWatchFaceClient.displayPressedAnimation đã bị xoá. (Id87d2)
  • Thêm chú thích rõ ràng về phân luồng cho setImportantForAccessibility (I990fa)
  • ComplicationSlotBoundsType đã được chuyển sang androidx-wear-watchface.ComplicationSlotBoundsType trong wear/wear-watchface. (I09420)
  • Chúng tôi đã hỗ trợ thêm việc chuyển mã tài nguyên của các chuỗi vào UserStyleSetting và Options. Hiện tại, đây là cách được đề xuất để tạo các đối tượng đó. (I03d5f)
  • Đã đặt ra giới hạn kích thước lưới tối đa của một UserStyle Schema. Ngoài ra, các Icon trong giản đồ không được lớn hơn 400x400 pixel. (I3b65b)
  • Chúng tôi thêm một lớp MutableUserStyle để hỗ trợ thay đổi các thực thể UserStyle (I95a40)
  • Chúng tôi đã đổi tên ListenableWatchFaceMetadataClient.Companion#listenableCreateWatchFaceMetadataClient thành ListenableWatchFaceMetadataClient.Companion#createListenableWatchFaceMetadataClient. (I64ce2)
  • Chúng tôi đã sửa đổi EditorState.previewComplicationsData để chỉ chứa dữ liệu về các vùng chức năng đã bật. Và chúng tôi thêm EditorSession.DEFAULT_PREVIEW_TIME_MILLIS để khi được chuyển vào các yêu cầu renderWatchFaceToBitmap hoặc PreviewScreenshotParams thì sẽ hiển thị theo thời gian xem trước mặc định của mặt đồng hồ. (If7b3c)
  • Chúng tôi đã xoá các hàm khởi tạo UserStyleSetting lấy CharSequence từ API công khai. Thay vào đó, bạn nên sử dụng các hàm khởi tạo có yêu cầu giá trị nhận dạng StringResource. (I8537b)
  • CurrentUserStyleRepository.UserStyleChangeListener hiện hỗ trợ việc chuyển đổi SAM. (I85989)

Phiên bản 1.0.0-alpha19

Ngày 4 tháng 8 năm 2021

Phát hành androidx.wear:wear-*:1.0.0-alpha19. Phiên bản 1.0.0-alpha19 bao gồm các thay đổi sau.

Thay đổi về API

  • Chúng tôi thêm ListenableWatchFaceMetadataClient.listenableCreateWatchFaceMetadataClient nhằm cung cấp trình bao bọc ListenableFuture cho WatchFaceMetadataClient.createWatchFaceMetadataClient. (I5fa37)
  • UserStyleOption.getOptionForId hiện chấp nhận UserStyleOption.Id thay vì một mảng byte. (I469be)
  • Cung cấp các hằng số BooleanOption.TRUEBooleanOption.FALSE và không cho phép tạo thực thể (I46e09)
  • Các phương thức trong wear-watchface-client có thể gửi RemoteException hiện đã được chú thích tương ứng. (Ib8438)
  • Để đảm bảo tính nhất quán, chúng tôi đã đổi tên EditorSession.createOnWatchEditingSession thành createOnWatchEditorSession, tương tự như createHeadlessEditingSession hiện tại là createHeadlessEditorSession. Các trình bao bọc guava cũng đã được đổi tên. (I1526b)
  • EditorSession hiện là một giao diện và ListenableEditorSession.commitChangesOnClose hiện đã được uỷ quyền hợp lệ. (I7dc3e)
  • Hiện tại, chúng tôi từ chối mọi UserStyle Schema có tuỳ chọn hoặc chế độ cài đặt chứa các giá trị nhận dạng xung đột (Ic2715)
  • Chúng tôi thêm một UserStyle.get quá tải chấp nhận UserStyleSetting.Id. (I2aa0f)

Phiên bản 1.0.0-alpha18

Ngày 21 tháng 7 năm 2021

Phát hành androidx.wear:wear-*:1.0.0-alpha18. Phiên bản 1.0.0-alpha18 bao gồm các thay đổi sau.

Thay đổi về API

  • Chúng tôi đã di chuyển ComplicationHelperActivity sang thư viện androidx.wear:wear-watchface. (I39e76)
  • Để đảm bảo tính nhất quán và rõ ràng, ComplicationProvider đã được đổi tên thành ComplicationDataSource và tất cả các lớp có Provider trong tên đều đã được đổi tên theo cách tương tự. (Iaef0b)
  • Di chuyển CanvasComplication.isHighlighted vào RenderParameters.pressedComplicationSlotIds. Đây là một bước hướng tới việc làm cho CanvasComplication trở thành không có trạng thái. Để hỗ trợ thay đổi này, CanvasComplication.render hiện cũng lấy slotId làm tham số và chúng tôi hiện chuyển ComplicationSlot vào GlesTextureComplication. (I50e6e)
  • Chúng tôi thêm headlessDeviceConfig vào EditorRequest. Nếu không có giá trị rỗng thì tham số này được dùng để tạo một thực thể không có giao diện (headless) để hỗ trợ EditorSession thay vì hoạt động trên thực thể tương tác. Điều này cho phép một mặt đồng hồ khác mặt đồng hồ hiện tại có thể gọi trình chỉnh sửa. (I0a820)
  • Chúng tôi thêm một WatchFaceMetadataClient thử nghiệm cho phép truy xuất siêu dữ liệu tĩnh trên mặt đồng hồ một cách hiệu quả như UserStyleSchema và sửa thông tin chi tiết về ComplicationSlots. (I6bfdf)
  • Chúng tôi đã đổi tên CanvasRenderer.uiThreadInit thành init. (I6fff9)
  • Chúng tôi thêm một tham số mới (không bắt buộc) là PreviewScreenshotParams cho EditorRequest để hướng dẫn EditorSession chụp ảnh màn hình xem trước khi xác nhận với tham số này. Hình ảnh xem trước được hiển thị trên EditorState.previewImage. (Ic2c16)

Sửa lỗi

  • Các nhà phát triển không cần phải thêm ComplicationHelperActivity vào tệp kê khai của riêng mình. (I6f0c2)

Phiên bản 1.0.0-alpha17

Ngày 30 tháng 6 năm 2021

Phát hành androidx.wear:wear-*:1.0.0-alpha17. Phiên bản 1.0.0-alpha17 bao gồm các thay đổi sau.

Tính năng mới

  • Trong GlesRenderer, makeUiThreadContextCurrentmakeBackgroundThreadContextCurrent đã được thay thế bằng runUiThreadGlCommandsrunBackgroundThreadGlCommands (đều chấp nhận Runnable). Thư viện này đảm bảo rằng tại một thời điểm bất kỳ chỉ có một lệnh GL có thể chạy được đang thực thi.

  • Để giúp UiThread khởi tạo dễ dàng hơn, chúng tôi thêm CanvasRenderer.uiThreadInit được gọi một lần trên UiThread trước khi có bất kỳ lệnh gọi nào đến trình kết xuất. Chúng tôi cũng thêm onRendererCreated vào CanvasComplication để giúp RendererCanvasComplication dễ dàng chia sẻ trạng thái.

  • Để rõ ràng hơn, chúng tôi đã đổi tên Complication thành ComplicationSlotcomplicationId thành complicationSlotId hoặc complicationInstanceId tuỳ thuộc vào cách sử dụng

Thay đổi về API

  • Để rõ ràng hơn, chúng tôi đã đổi tên Complication thành ComplicationSlotcomplicationId thành complicationSlotId hoặc complicationInstanceIdtuỳ thuộc vào cách sử dụng. Các lớp có sử dụng Complication cũng đã được đổi tên theo cách tương tự, chẳng hạn như ComplicationsManager hiện đang được gọi là ComplicationSlotsManager. (I4da44)
  • Trong GlesRenderer makeUiThreadContextCurrentmakeBackgroundThreadContextCurrent đã được thay thế bằng runUiThreadGlCommandsrunBackgroundThreadGlCommands, cả hai đều chấp nhận Runnable. Các hàm này chỉ cần thiết nếu bạn cần thực hiện lệnh gọi GL bên ngoài trình kết xuất, runBackgroundThreadGlCommandsonUiThreadGlSurfaceCreated. Đây là yêu cầu bắt buộc vì có thể có nhiều GlesRenderer với những ngữ cảnh riêng trong cùng một quy trình, có thể là từ nhiều mặt đồng hồ. Ngoài ra, quyền truy cập vào ngữ cảnh GL hiện tại được chia sẻ hiện cũng được đồng bộ hoá. (I04d59)
  • Chúng tôi thêm CanvasRenderer.uiThreadInit được gọi một lần trên UiThread trước khi có bất kỳ lệnh gọi nào đến trình kết xuất. Ngoài ra, để tăng tính rõ ràng trong GlesRenderer, chúng tôi đã đổi tên onGlContextCreated thành onBackgroundThreadGlContextCreatedonGlSurfaceCreated thành onUiThreadGlSurfaceCreated. (If86d0)
  • HeadlessWatchFaceClientInteractiveWatchFaceClient getComplicationsSlotState đã được đổi tên thành getComplicationSlotsState. Trong ComplicationSlot: createRoundRectComplicationBuilder, createBackgroundComplicationBuildercreateEdgeComplicationBuilder đã được đổi tên lần lượt thành createRoundRectComplicationSlotBuilder, createBackgroundComplicationSlotBuildercreateEdgeComplicationSlotBuilder. (Ib9adc)
  • Chúng tôi thêm onRendererCreated vào CanvasComplication để giúp Renderer và CanvasComplication dễ dàng chia sẻ trạng thái. (I5e1ac)

Phiên bản 1.0.0-alpha16

Ngày 16 tháng 6 năm 2021

Phát hành androidx.wear:wear-*:1.0.0-alpha16. Phiên bản 1.0.0-alpha16 bao gồm các thay đổi sau.

Tính năng mới

  • Chúng tôi đã khắc phục một số lỗi liên quan đến những thay đổi gần đây trong mô hình phân luồng, cũng như khắc phục các sự cố khác liên quan đến trình chỉnh sửa mặt đồng hồ.

Sửa lỗi

  • Ngăn chặn NPE trong onComplicationProviderChooserResult (b/189594557)
  • Khắc phục sự cố của các bề mặt cũ và drawBlack (b/189452267)
  • Khắc phục tình trạng tương tranh khi truy cập vào complicationsManager.watchState (b/189457893)
  • Khắc phục lỗi vòng đời của luồng nền (b/189445428)
  • Khắc phục các sự cố liên quan đến Trình chỉnh sửa Mặt đồng hồ Pre-R (b/189126313)
  • Không cập nhật tham số khởi động trực tiếp đối với những thay đổi về Phong cách (Style) của trình chỉnh sửa (b/187177307)

Phiên bản 1.0.0-alpha15

Ngày 2 tháng 6 năm 2021

Phát hành androidx.wear:wear-*:1.0.0-alpha15. Phiên bản 1.0.0-alpha15 bao gồm các thay đổi sau.

Tính năng mới

Hiện tại, phần lớn quá trình khởi chạy mặt đồng hồ được thực hiện trên một luồng nền. Tuy nhiên, sau quá trình tải thì tất cả các quá trình hiển thị mặt đồng hồ đều được thực hiện trên UiThread. Có một rào cản bộ nhớ giữa quá trình tải và kết xuất, nên hầu hết mặt đồng hồ của người dùng không cần phải thực hiện bất cứ chức năng đặc biệt nào. Các mặt đồng hồ sử dụng GLES có thể là ngoại lệ vì ngữ cảnh là dành riêng cho luồng; và chúng tôi tạo hai ngữ cảnh được liên kết để có thể tải tài nguyên GL lên (ví dụ: kết cấu và bóng đổ) luồng nền và sử dụng các tài nguyên đó trên UiThread.

Chúng tôi đã tách việc khởi tạo mặt đồng hồ thành 3 hàm: createUserStyleSchema, createComplicationsManager và createWatchFace. Chúng tôi giả định rằng createUserStyleSchema và createComplicationsManager xử lý nhanh và createWatchFace có thể mất một chút thời gian để tải nội dung. Tận dụng điều này, chúng tôi đã giới thiệu WatchFaceControlClient.getDefaultProviderPoliciesAndType trả về bản đồ giá trị nhận dạng Complication vào DefaultComplicationProviderPolicies và ComplicationType mặc định. Cách này nhanh hơn so với việc tạo một thực thể không có giao diện (headless) vì không cần phải khởi chạy mặt đồng hồ một cách hoàn chỉnh để thực hiện truy vấn.

Cuối cùng, bạn có thể khởi tạo các vùng chức năng bằng một CanvasComplicationFactory. Điều này cho phép bạn khởi tạo từng trình kết xuất CanvasComplication.

Thay đổi về API

  • Thay thế @TargetApi bằng @RequiresApi. (I0184a, b/187447093, b/187447094)
  • Chúng tôi đã giới thiệu WatchFaceControlClient.getDefaultProviderPoliciesAndType trả về một bản đồ giá trị nhận dạng Complication vào DefaultComplicationProviderPolicies và ComplicationType mặc định. Khi có thể, đường dẫn nhanh sẽ được sử dụng để tránh khởi tạo toàn bộ mặt đồng hồ. Để tạo điều kiện cho việc này, API WatchFaceService phải thay đổi cách thực hiện hai phương thức mới: createUserStyleSchema và createComplicationsManager, kết quả sau khi thực hiện sẽ được chuyển vào createWatchFace. Ngoài ra, bạn có thể khởi tạo các vùng chức năng bằng một CanvasComversionFactory. Điều này cho phép bạn khởi tạo từng trình kết xuất CanvasComplication. (Iad6c1)
  • Chúng tôi đã xoá MOST_RECENT_APP khỏi SystemProviders. (I3df00)
  • ObservableWatchData hiện là một lớp kín. (Ic940d)
  • CanvasComplicationFactory.create (thường là io bound) hiện được gọi trên một luồng nền đối với mỗi vùng chức năng trước khi quá trình kết xuất luồng giao diện người dùng bắt đầu. Có một rào cản bộ nhớ giữa quá trình khởi tạo và quá trình kết xuất, vì vậy không cần phải cấp quyền ưu tiên phân luồng đặc biệt. (Ia18f2)
  • Mặc dù toàn bộ quá trình kết xuất đều được thực hiện trên luồng giao diện người dùng, quá trình khởi tạo mặt đồng hồ hiện diễn ra trên một luồng trong nền, và GlesRenderer hỗ trợ 2 ngữ cảnh được liên kết để hỗ trợ việc này. WatchFaceControlClient.createHeadlessWatchFaceClient và WatchFaceControlClient.getOrCreateInteractiveWatchFaceClient có thể phân giải trước khi WatchFaceService.createWatchFace đã hoàn tất. Các lệnh gọi API tiếp theo sẽ chặn cho đến khi quy trình khởi tạo watchFace hoàn tất. (Id9f41)
  • EXPANSION_DP và STROKE_WIDTH_DP không còn hiển thị trong api.txt nữa. (I54801)
  • Chúng tôi đã làm cho EditorSession.createOnWatchEditingSession gửi TimeoutCancellationException nếu xảy ra lỗi, thay vì gửi một phiên hoạt động rỗng. Ngoài ra, giá trị trả về của EditorRequest.createFromIntent và EditorSession.createOnWatchEditingSession hiện là NonNull. (I41eb4)

Phiên bản 1.0.0-alpha14

Ngày 18 tháng 5 năm 2021

Phát hành androidx.wear:wear-*:1.0.0-alpha14. Phiên bản 1.0.0-alpha14 bao gồm các thay đổi sau.

Tính năng mới

  • EditorSession.openComplicationProviderChooser hiện trả về ChosenComplicationProvider chứa giá trị nhận dạng vùng chức năng, ComplicationProviderInfo và một Bundle chứa bất kỳ phần bổ sung nào được trình chọn của nhà cung cấp trả về.
  • Ngoài ra, chúng tôi liên tục chuyển mã sang Kotlin và phần lớn API mặt đồng hồ hiện đã được khai báo trong Kotlin.

Thay đổi về API

  • Hiện tại, các thuộc tính eglContexteglDisplay của GlesRenderer không thể nhận giá trị rỗng. Hiện tại, mọi lỗi GL đều được báo cáo qua GlesRenderer.GlesException thay vì qua RuntimeExceptions. (Ib1005)
  • Chúng tôi đã di chuyển androidx.wear.watchface.complications.rendering.ComplicationDrawable từ Java sang Kotlin (Ibc3eb)
  • Chúng tôi đã di chuyển androidx.wear.watchface.complications.rendering.ComplicationStyle từ Java sang Kotlin (I3375e)
  • Chúng tôi thêm thông tin về nhà cung cấp cho mỗi vùng chức năng trong EditorSession. (I37f14)
  • Chúng tôi đã nới rộng kết quả của EditorSession.openComplicationProviderChooser bao gồm cả thông tin mà trình chọn trả về. (Iead6d)

Wear Complications & Watchface Phiên bản 1.0.0-alpha13

Ngày 5 tháng 5 năm 2021

Phát hành androidx.wear:wear-*:1.0.0-alpha13. Phiên bản 1.0.0-alpha13 bao gồm các thay đổi sau.

Tính năng mới

  • Các mặt đồng hồ có thể có các thành phần hình ảnh quan trọng ngoài phần hiển thị thời gian và các vùng chức năng. Để cung cấp tính năng hỗ trợ đọc màn hình, mặt đồng hồ hiện có thể chỉ định ContentDescriptionLabels hỗ trợ tiếp cận thông qua thuộc tính additionalContentDescriptionLabels của Trình kết xuất (Renderer). Ngoài ra, chúng tôi thêm accessibilityTraversalIndex vào các vùng chức năng để kiểm soát thứ tự của ContentDescriptionLabels. Bạn có thể sửa đổi thuộc tính này bằng ComplicationsUserStyleSetting.

  • Để khuyến khích các nhà phát triển cân nhắc kỹ các trình đọc màn hình, chúng tôi đã bắt buộc họ phải chuyển trường contentDescription vào hàm khởi tạo của ShortTextComplicationData.Builder, LongTextComplicationData.BuilderRangedValueComplicationData.Builder. Nếu ComplicationText.EMPTY được chuyển cho contentDescription thì hệ thống sẽ tự động tạo contentDescription từ văn bản và tiêu đề.

  • WatchFaceControlClient.getOrCreateInteractiveWatchFaceClient sẽ gửi ServiceStartFailureException nếu mặt đồng hồ gửi một ngoại lệ trong quá trình khởi động. Điều này giúp bạn chẩn đoán vấn đề dễ dàng hơn trong khi khởi động mặt đồng hồ.

Thay đổi về API

  • Chúng tôi đã hỗ trợ thêm việc dùng một tên thành phần rỗng trong ComplicationProviderInfo để hỗ trợ các phiên bản Wear OS cũ. (I744d2)
  • Chúng tôi đã di chuyển androidx.wear.complications.SystemProviders từ Java sang Kotlin. (Ia1f8b)
  • Chúng tôi đã ẩn tất cả các lớp khỏi API công khai trong android.support.wearable.complications và đã tạo các trình bao bọc tương ứng trong AndroidX khi cần. (I7bd50)
  • Chúng tôi đã đổi tên phương thức setMinimumUnit trong TimeDifferenceComplicationText.Builder thành setMinimalTimeUnit. (I20c64)
  • Chúng tôi đã bắt buộc phải chuyển trường contentDescription vào hàm khởi tạo của ShortTextComplicationData.Builder, LongTextComplicationData.Builder, và RangedValueComplicationData.Builder. (I8cb69)
  • Chúng tôi đã đổi tên ComplicationProviderService.onComplicationUpdate thành onComplicationRequest và đã đóng gói giá trị nhận dạng và tham số type của phương thức này thành dữ liệu ComplicationRequest. Trình nghe tương ứng đã được đổi tên thành ComplicationRequestListener và có phương thức ComplicationRequestListener.onComplicationData. (Iaf146)
  • Chúng tôi đã xoá phương thức isActiveAt khỏi ComplicationData và thay vào đó cho thấy trường validTimeRange. Bạn có thể thay thế lệnh gọi phương thức này bằng validTimeRange.contains. (I65936)
  • Chúng tôi đã thay đổi phần mô tả của phương thức ComplicationProviderService.onComplicationActivated để nhận ComplicationType thay vì int. (Idb5ff)
  • Di chuyển ProviderUpdateRequester từ Java sang Koltin. (Ibce13)
  • GlesRender.makeContextCurrent hiện đang ở chế độ công khai. Bởi vì có thể có cả ngữ cảnh tương tác lẫn ngữ cảnh không có giao diện (headless) nên mã mặt đồng hồ có thể cần thực hiện các lệnh gọi gl bên ngoài trình kết xuất và onGlContextCreated. (I8a43c)
  • WatchFaceControlClient.getOrCreateInteractiveWatchFaceClient hiện sẽ gửi ServiceStartFailureException nếu mặt đồng hồ gửi ngoại lệ trong quá trình khởi động. Ngoài ra, WatchWatchService hiện cũng gửi một ngoại lệ nếu createWatchFace thực hiện trong thời gian hơn 6 giây. (I59b2f)
  • Chúng tôi đã xoá thuộc tính giá trị nhận dạng không dùng đến của GlesTextureComplication. (I28958)
  • Giờ đây, mặt đồng hồ có thể chỉ định ContentDescriptionLabels hỗ trợ tiếp cận thông qua thuộc tính additionalContentDescriptionLabels của Renderer. Ngoài ra, chúng tôi thêm accessibilityTraversalIndex vào các vùng chức năng để kiểm soát thứ tự của ContentDescriptionLabels. Bạn có thể sửa đổi thuộc tính này bằng ComplicationsUserStyleSetting. (Ib7362)
  • Mở rộng tài liệu về xử lý sự kiện nhấn trong mặt đồng hồ. (Iaf31e)

Sửa lỗi

  • EditorSession.getComplicationsPreviewData() hiện sẽ trả về một bản đồ đối với mọi vùng chức năng, thay vì chỉ thực hiện cho các vùng chức năng không trống. Một thực thể của EmptyComplicationData được sử dụng cho các vùng chức năng trống. (I1ef7e)

Wear Complications & Watchface Phiên bản 1.0.0-alpha12

Ngày 21 tháng 4 năm 2021

Phát hành androidx.wear:wear-*:1.0.0-alpha12. Phiên bản 1.0.0-alpha12 bao gồm các thay đổi sau.

Tính năng mới

Các trình chỉnh sửa mặt đồng hồ cần làm nổi bật các phần của mặt đồng hồ để giúp xác định khía cạnh nào của đồng hồ đang được định cấu hình. Chúng tôi đã mở rộng RenderParameters để cho phép làm nổi bật các vùng chức năng, cũng như các Phong cách (Style). Một HighlightLayer không bắt buộc dự kiến sẽ được làm mờ trên đỉnh mặt đồng hồ với độ trong suốt alpha (các API ảnh chụp màn hình có thể thực hiện việc làm mờ này, hoặc tự cung cấp HighlightLayer với tính linh hoạt tối đa). Ví dụ: giả sử bạn có một Style cho phép bạn định cấu hình giao diện của các kim đồng hồ, trình kết xuất của bạn có thể vẽ đường viền xung quanh các kim đồng hồ trong renderHighlightLayer.

Để khuyến khích Nhà cung cấp vùng chức năng phát triển tính năng hỗ trợ tiếp cận, chúng tôi đã thiết lập trường contentDescription trở thành đối số bắt buộc cần đưa vào hàm khởi tạo PhotoImageComplicationData.Builder, MonochromaticImageComplicationData.Builder và SmallImageComplicationData.Builder Chúng tôi thêm ComplicationTapFilter và Complication.createEdgeComplicationBuilder để hỗ trợ các vùng chức năng cạnh (được vẽ xung quanh cạnh màn hình). Việc hiển thị và thử nghiệm nhấn của các vùng chức năng cạnh được quyết định bởi mặt đồng hồ. Trình chỉnh sửa đồng hành không hỗ trợ việc thử nghiệm nhấn ở cạnh.

Thay đổi về API

  • Thêm tiền tố PROVIDER_ vào các hằng số trong SystemProviders. (I1e773)
  • Chúng tôi đã bắt buộc phải chuyển trường contentDescription vào hàm khởi tạo của PhotoImageComplicationData.Builder, MonochromaticImageComplicationData.BuilderSmallImageComplicationData.Builder. (I9643a)
  • ProviderInfoRetriever.requestPreviewComplicationData đã được đổi tên thành retrievePreviewComplicationData. (I911ee)
  • Di chuyển ComplicationProviderService từ Java sang Koltin. (I849f2)
  • Hiện tại, phương thức ComplicationProviderService.onBind là cuối cùng (I39af5)
  • Chúng tôi đã khôi phục giao diện CanvasComplication và chuyển CanvasComplicaitonDrawable, GlesTextureComplicationComplicationHighlightRenderer sang wear-watchface-complications-rendering. (I84670)
  • RenderParameters đã được tái cấu trúc lại để hỗ trợ việc mở rộng kết xuất các vùng nổi bật. Giờ đây, bạn có thể yêu cầu kết xuất những vùng nổi bật đối với các Phong cách (Style), cũng như một hoặc tất cả các vùng chức năng. Ngoài ra, CanvasRenderer và GlesRenderer hiện có phương thức trừu tượng mới là renderHighlightLayer để kết xuất bất kỳ vùng nào được trình chỉnh sửa yêu cầu làm nổi bật. Layer đã được đổi tên thành WatchFaceLayer. (Ic2444)
  • ComplicationTapFilterComplication.createEdgeComplicationBuilder đã được thêm vào để hỗ trợ các vùng chức năng cạnh. Việc hiển thị và thử nghiệm nhấn của các vùng chức năng cạnh được quyết định bởi mặt đồng hồ. Việc thử nghiệm nhấn không được hỗ trợ từ bên trong trình chỉnh sửa. (Ia6604)
  • Đối với DoubleRangeUserStyleSettingLongRangeUserStyleSetting: defaultValue, maximumValueminimumValue hiện tại là các thuộc tính Kotlin. Ngoài ra, các hàm UserStyleSetting.Option như toBooleanOption, toCoplicationOptions, toListOption và các hàm tương tự đều đã bị xoá. (I52899)
  • Thêm kích thước cằm vào các thuộc tính của thiết bị mà mặt đồng hồ có thể sử dụng. (I76e1e)
  • Hàm khởi tạo của ComplicationHighlightRenderer hiện chấp nhận các tham số outlineExpansionoutlineStrokeWidth. (I87009)
  • ComplicationDrawable.getNoDataText hiện là một phần của API công khai. (I00598)

Phiên bản 1.0.0-alpha11

Ngày 7 tháng 4 năm 2021

Phát hành androidx.wear:wear-*:1.0.0-alpha11. Phiên bản 1.0.0-alpha11 chứa những cam kết này.

Tính năng mới

  • Chúng tôi cải thiện thêm các API mặt đồng hồ. Hầu hết những thay đổi đều đơn giản là đổi tên nhưng InteractiveWatchFaceWcsClientInteractiveWatchFaceSysUiClient đã được hợp nhất thành InteractiveWatchFaceClient.

Thay đổi về API

  • ContentDescriptionLabel.text hiện là một ComplicationText thay vì TimeDependentText của Thư viện hỗ trợ Wearable. (I80c03)
  • SystemProviders.GOOGLE_PAY không chắc chắn sẽ có mặt trên tất cả thiết bị Android R nên đã bị xoá khỏi danh sách. Bạn vẫn có thể sử dụng nhà cung cấp này qua DefaultComplicationProviderPolicy (If01b5)
  • Chúng tôi đã đổi tên ComplicationUpdateCallback thành ComplicationUpdateListener để đảm bảo tính nhất quán. (I61ec7)
  • Bản đồ định dạng lưới UserStyle đã được thay đổi thành Map<String, byte[]>. Để thuận tiện hơn, lớp UserStyleData đã được thêm vào API công khai và hiện đang được wear-watchface-client và wear-watchface-editor sử dụng. Ngoài ra, CustomValueUserStyleSetting.CustomValueOption.value hiện là byte[] thay vì String. (Iaa103)
  • UserStyleSettingUserStyleSetting.Option hiện sử dụng UserStyleSetting.IdUserStyleSetting.Option.Id tương ứng để lưu trữ giá trị nhận dạng thay vì một String. (I63f72)
  • InteractiveWatchFaceClient.SystemState đã được đổi tên thành WatchUiState. (I6a4e0)
  • InteractiveWatchFaceWcsClientInteractiveWatchFaceSysUiClient đã được hợp nhất để tránh tình trạng phân chia trách nhiệm không rõ ràng (Iff3fa)
  • Để tăng tính rõ ràng, chúng tôi đã đổi tên các giá trị liệt kê Layer. Layer#TOP_LAYER hiện là Layer#COMPLICATIONS_OVERLAYLayer#BASE_LAYER hiện là Layer#BASE (Ia144e)
  • UserStyleListener đã được đổi tên thành UserStyleChangeListener (I18524)
  • UserStyleRepository đã được đổi tên thành CurrentUserStyleRepository (I6ea53)
  • InteractiveWatchFaceWcsClient.updateInstance đã được đổi tên thành updateWatchfaceInstance. (I321dc)
  • Các sự kiện TapType của WatchFace đã được đổi tên để phù hợp với MotionEvent / Compose. (I0dfd0)
  • Chúng tôi đã đổi tên takeWatchfaceScreenshot thành renderWatchFaceToBitmap, và đổi tên takeComplicationScreenshot thành renderComplicationToBitmap (Ie0697)
  • Chúng tôi đã xoá giao diện CanvasComplication để chuyển sang lớp mở CanvasComplicationDrawable. (I1f81f)
  • WatcfaceControlServiceFactory đã bị xoá khỏi API công khai. (I1f8d3)
  • Chúng tôi đã đổi tên CanvasComplication.setData thành CanvasComplication.loadData. (If1239)
  • ComplicationsManager.bringAttentionToComplication đã được đổi tên thành displayPressedAnimation. (Ic4297)
  • WatchFaceService.createWatchFace hiện có một chú thích @UiThread. (Ib54c2)
  • Đổi tên của một tham số CanvasComplicationDrawable để sửa lỗi. (I50dac)
  • Chúng tôi thêm HeadlessWatchFaceClient.toBundle()HeadlessWatchFaceClient.createFromBundle để hỗ trợ việc gửi HeadlessWatchFaceClient qua AIDL. (I07c35)
  • Hiện tại, HeadlessWatchFaceClient và InteractiveWatchFaceClient có ClientDisconnectListener và isConnectionAlive() giúp quan sát và phát hiện sự cố kết nối (vì một số lý do, chẳng hạn như: mặt đồng hồ không phản hồi). (Ie446d)
  • WatchFaceControlClient#getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClientAsync hiện là một hàm tạm ngưng (suspend function) và đã được đổi tên thành getOrCreateInteractiveWatchFaceClient. (Ib745d)
  • EditorState.commitChangeshasCommitChanges() đã được đổi tên thành shouldCommitChanges(). (I06e04)
  • previewComplicationData đã được đổi tên thành previewComplicationsData để thể hiện rằng (thường) có nhiều vùng chức năng trong bản đồ. (I56c06)
  • InteractiveWatchFaceWcsClient.bringAttentionToComplication đã được đổi tên thành displayPressedAnimation để đảm bảo tính nhất quán với ComplicationsManager.displayPressedAnimation. (Ic9999)
  • Tất cả các bản sao của giá trị nhận dạng thực thể mặt đồng hồ đã được đóng gói trong một lớp WatchFaceId mới (I45fdf)
  • Chúng tôi đã đổi tên thuộc tính complicationState thành complicationsState để cho biết số nhiều. (Ided07)
  • Chúng tôi đã xoá nhiều lượt chuyển đổi wear-watchface-client Binder khác nhau, đây chính là điều cần làm. (Icc4c0)
  • Để đảm bảo tính nhất quán, EditorServiceClient đã được tái cấu trúc để sử dụng trình nghe thay vì trình quan sát. (Iec3a4)
  • Chúng tôi thêm một vài chú thích @Px bị thiếu vào InteractiveWatchFaceSysUiClientWatchFaceControlClient. (I3277a)
  • Đổi tên EditorObserverCallback thành EditorObserverListener để đảm bảo tính nhất quán. (Ie572d)
  • EditorState.watchFaceInstanceId bị hạn chế từ cấp độ API của Android R trở lên, cũng như không thể nhận giá trị rỗng nữa. (Id52bb)
  • EditorSession.launchComplicationProviderChooser đã được đổi tên thành openComplicationProviderChooser. (I9d441)
  • EditorSession.createOnWatchEditingSessionAsync đã được đổi tên thành createOnWatchEditingSession và hiện là một hàm tạm ngưng (suspend). (Id257b)
  • Thêm một số chú thích @UiThread bị thiếu trên EditorSession. (I6935c)
  • UserStyleSetting.affectsLayers đã được đổi tên thành affectedLayers. (I6e22b)

Phiên bản 1.0.0-alpha10

Ngày 24 tháng 3 năm 2021

Phát hành androidx.wear:wear-*:1.0.0-alpha10. Phiên bản 1.0.0-alpha10 bao gồm các thay đổi sau.

Tính năng mới

  • Hiện tại, bạn có thể tạo các đối tượng gl mở (ví dụ: kết cấu) trong quá trình WatchFaceService.createWatchFace, vì giờ đây, GlesRenderer yêu cầu một lệnh gọi rõ ràng đến initOpenGLContext, lệnh gọi này có thể được thực hiện trong createWatchFace.

Thay đổi về API

  • IdAndComplicationData đã gặp một số trục trặc và đã bị xoá khỏi API công khai. Các lớp và giao diện sử dụng IdAndComplicationData đã được tái cấu trúc. (I4c928)
  • Chúng tôi đã thay thế ReferenceTime bằng CountUpTimeReferenceCountDownTimeReference có tính tự giải thích tốt hơn. (Ib66c6)
  • Thêm một số chú thích bị thiếu cho @Px@ColorInt. (I9bbc3)
  • Complication.complicationConfigExtras hiện không thể nhận giá trị rỗng và mặc định là Bundle.EMPTY. (Iad04f)
  • GlesRenderer hiện yêu cầu bạn gọi initOpenGLContext sau khi khởi tạo. Đây là một hàm nội bộ nhưng hiện nằm trên API công khai để cho phép bạn thực hiện các lệnh gọi GL sớm hơn trong createWatchFace. (I726c2)
  • Chúng tôi đã xoá Complication.setRenderer vì công cụ này không còn cần thiết. (Ie992f)
  • Complicaiton.setComplicationBounds không còn là một phần của API công khai. Nếu cần điều chỉnh vị trí của một vùng chức năng, bạn có thể thực hiện việc này thông qua ComplicationsUserStyleSetting. (Ibd9e5)
  • ComplicationsManager.TapCallback.onComplicationSingleTapped đã được đổi tên thành onComplicationTapped. (I3a55c)
  • ComplicationOutlineRenderer.drawComplicationSelectOutline đã được đổi tên thành drawComplicationOutline. (I14b88)

Phiên bản 1.0.0-alpha09

Ngày 10 tháng 3 năm 2021

Phát hành androidx.wear:wear-complications-*:1.0.0-alpha09androidx.wear:wear-watchface-*:1.0.0-alpha09. Phiên bản 1.0.0-alpha09 bao gồm các thay đổi sau.

Tính năng mới

  • Chúng tôi đã cải tiến giao diện giữa các kênh lưu trữ WCS/SysUI và mặt đồng hồ. Giờ đây, trình chỉnh sửa có thể xác định rằng một thay đổi về Phong cách (Style) sẽ bật hay tắt một vùng chức năng (đã bật = initiallyEnabled cùng với bất kỳ cơ chế ghi đè nào từ ComplicationsUserStyleSetting). Ngoài ra, EditorService.closeEditor cũng cho phép SysUI đóng trình chỉnh sửa mặt đồng hồ từ xa nếu cần.
  • Ngoài ra, InteractiveWatchFaceWcsClient.setUserStyle còn có một lệnh updateInstance mạnh mẽ hơn: thay đổi giá trị nhận dạng thực thể, thiết lập Phong cách (Style) và xoá tất cả các vùng chức năng trong một lượt thi hành.

Thay đổi về API

  • TraceEvents đã được thêm vào các thư viện mặt đồng hồ. (I1a141)
  • ComplicationState hiện có một thuộc tính mới initiallyEnabled rất hữu ích cho việc dự đoán kết quả của việc chuyển đổi Phong cách (Style). (I8c905)
  • Chúng tôi đã thay thế InteractiveWatchFaceWcsClient.setUserStyle bằng một lệnh updateInstance mạnh mẽ hơn: thay đổi ID của thực thể, thiết lập Phong cách (Style) và xoá các vùng chức năng. (Ife6f6)
  • Các API chụp ảnh màn hình của WatchFaceClient không còn nén các ảnh chụp màn hình nữa do sẽ mất nhiều thời gian. Thay vào đó, chúng tôi để cho phương thức gọi quyết định toàn bộ quá trình xử lý hậu kỳ. (Id35af)
  • Giờ đây, bạn có thể dùng EditorService.closeEditor để đóng trình chỉnh sửa trên mặt đồng hồ từ xa. (Ic5aa4)
  • Thêm chú thích thuộc tính rỗng (Ic16ed)

Phiên bản 1.0.0-alpha08

Ngày 24 tháng 2 năm 2021

Phát hành androidx.wear:wear-*:1.0.0-alpha08. Phiên bản 1.0.0-alpha08 bao gồm các thay đổi sau.

Tính năng mới

  • Một số mặt đồng hồ được thiết kế dựa trên một hoặc nhiều vùng chức năng cụ thể. Để hỗ trợ việc này, chúng tôi thêm Complication.Builder#setFixedComplicationProvider (nếu thiết lập thành true, người dùng sẽ không thể thay đổi vùng chức năng này trong một khu vực nhất định).
  • Các thư viện mặt đồng hồ là những đối tượng đầu tiên sử dụng mã Kotlin và coroutine (chẳng hạn như các hàm tạm ngưng). Đối với người dùng Java, chúng tôi đã cung cấp các trình bao bọc ListenableFuture để cải thiện khả năng tương tác trong các thư viện sau: wear/wear-watchface-guava, wear/wear-watchface-client-guava & wear/wear-watchface-editor-guava.

Thay đổi về API

  • Chúng tôi đã xoá tính năng hỗ trợ cho cử chỉ nhấn đúp vào các vùng chức năng khi chạy trình chọn nhà cung cấp. Tính năng này không phổ biến trong mặt đồng hồ và khiến việc triển khai SysUI trở nên phức tạp. (I3ef24)
  • Các phương thức ProviderInfoRetriever có thể gửi ServiceDisconnectedException nếu trình kết dính (binder) bị đóng bất ngờ. (Ib2cc4)
  • Từ Android 11 trở đi, sẽ có hạn chế về thời điểm có thể chạy ProviderChooser. Ngoài ra, chúng tôi muốn các trình chỉnh sửa được xây dựng bằng wear-watchface-editor mới nên xoá ComplicationHelperActivity khỏi API công khai. (Ib19c1)
  • Xoá các phương thức tĩnh ComplicationText và thay thế bằng các trình tạo (builder). (Ibe399)
  • Chúng tôi đã ra mắt trình bao bọc ListenableFuture của guava cho những phương thức khác nhau đang bị tạm ngưng trong các thư viện mặt đồng hồ. (I16b2c)
  • Để API trở nên rõ ràng, chúng tôi thêm một hàm khởi tạo phụ vào RenderParameters. Khác với LayerMode.DRAW_OUTLINED, hàm này không yêu cầu sắc độ màu khi sử dụng với LayerModes. (I497ea)
  • Trước đây ListUserStyleSetting khác với các StyleSetting khác vì có đối số mặc định. Giờ đây, tất cả các hàm khởi tạo lớp con StyleSetting đều lấy giá trị mặc định cuối cùng. (I9dbfd)
  • CanvasComplication đã được tái cấu trúc để sử dụng một phương thức ẩn, giúp dễ dàng triển khai lớp con hơn (I5b321)
  • Chúng tôi đã tái cấu trúc EditorResult mới dựa trên một EditorService mới và EditorSession.broadcastState() để truyền phát nội dung cập nhật đến một trình quan sát (thường là SysUI). (Ic4370)
  • Một số mặt đồng hồ được xây dựng dựa trên một vùng chức năng cụ thể. Vùng chức năng này đóng vai trò thiết yếu đối với mặt đồng hồ, nhưng người dùng lại không thể định cấu hình nhà cung cấp trong đó. Để hỗ trợ việc này, chúng tôi thêm Complication.Builder#setFixedComplicationProvider. (I4509e)
  • EditorRequest hiện chỉ định tên gói chứ không phải ComponentName để cho SysUI có thể dễ dàng tra cứu tên lớp của trình chỉnh sửa (thực tế là chỉ cần tên gói). (Ib6814)

Phiên bản 1.0.0-alpha07

Ngày 10 tháng 2 năm 2021

Phát hành androidx.wear:wear-*:1.0.0-alpha07. Phiên bản 1.0.0-alpha07 bao gồm các thay đổi sau.

Tính năng mới

  • WatchFaceService.createWatchFace hiện là một hàm tạm ngưng, tức là mặt đồng hồ không còn phải chặn luồng giao diện người dùng trong khi chờ IO. Tương tự như vậy- đối với wear-watchface-editor và wear-complications-data

Thay đổi về API

  • Xoá lớp PhotoImage và sử dụng Icon trực tiếp. (I8a70b)
  • Hiển thị validTimeRange của ComplicationData. (I91366)
  • Làm cho thuộc tính giống hình ảnh (image-like) trở nên rõ ràng hơn. (I81700)
  • wear-watchface-editor và wear-complications-data đã được tái cấu trúc để sử dụng các hàm tạm ngưng thay vì coroutine. Các trình bao bọc Rx Java và Future compat cũng được tái cấu trúc như vậy. (If3c5f)
  • Hiện tại, ProviderInfoRetriever sẽ gửi PreviewNotAvailableException nếu requestPreviewComplicationData không thể trả về dữ liệu xem trước do sự cố kết nối hoặc thiếu API hỗ trợ. (I4964d)
  • WatchFaceControlService::createWatchFaceControlClient hiện là một hàm tạm ngưng và getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient hiện được gọi là getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClientAsync trả về Deferred<InteractiveWatchFaceWcsClient>. Sau đó, chúng tôi sẽ thêm các trình bao bọc RX Java và Future có khả năng tương thích. (I5d461)
  • Đổi tên CATEGORY_PROVIDER_CONFIG_ACTION thành CATEGORY_PROVIDER_CONFIG. (I7c068)
  • Xin lưu ý rằng createOnWatchEditingSession hiện là một hàm tạm ngưng, vì đôi khi mặt đồng hồ không hoạt động ngay sau khi hoạt động của trình chỉnh sửa bắt đầu. (Ida9aa)
  • WatchFaceService.createWatchFace hiện là một hàm tạm ngưng cho phép khởi chạy không đồng bộ (trước đây bạn sẽ phải chặn chuỗi chính). (If076a)
  • UserStyle hiện có một toán tử mảng và chúng tôi thêm trình trợ giúp truyền phát vào UserStyle.Option. (I35036)
  • Chúng tôi đã sửa một lỗi sắp xếp xảy ra với các định dạng lưới của UserStyle và thay đổi một số API ẩn không ổn định. (I8be09)
  • Chúng tôi thêm CustomValueUserStyleSetting cho phép bạn lưu trữ một chuỗi cụ thể trong ứng dụng trong một UserStyle. Các trình chỉnh sửa mặt đồng hồ mặc định sẽ bỏ qua giá trị này. (Ic04d2)
  • InstanceID không được chuyển vào phần bổ sung ý định của Android R và các phiên bản Android cũ hơn của WearOS mà chúng tôi không thể nâng cấp. Để giải quyết vấn đề này, chúng tôi hiện cho phép InstanceID có thể rỗng. (Id8b78)
  • EditorRequest hiện bao gồm ComponentName của trình chỉnh sửa. Đây là thành phần được thiết lập trong WatchFaceEditorContract.createIntent (I3cd06)
  • EditorResult của mặt đồng hồ hiện bao gồm ComplicationData xem trước để cho phép phương thức gọi chụp ảnh màn hình mặt đồng hồ sau khi chỉnh sửa. (I2c561)

Sửa lỗi

  • Thêm toString() để ghi đè vào UserStyle, UserStyleSetting và UserStyleSchema, giúp các lớp này làm việc tốt hơn một chút. (I9f5ec)

Phiên bản 1.0.0-alpha06

Ngày 27 tháng 1 năm 2021

Phát hành androidx.wear:wear-*:1.0.0-alpha06. Phiên bản 1.0.0-alpha06 bao gồm các thay đổi sau.

Tính năng mới

  • Chúng tôi đã giới thiệu một thư viện mới wear/wear-watchface-editor, cho phép các nhà phát triển mặt đồng hồ và nhà sản xuất thiết bị gốc có thể xây dựng trình chỉnh sửa Phong cách (Style) và vùng chức năng. SysUI sẽ gửi một Ý định đến mặt đồng hồ. Ý định này sẽ sử dụng lớp EditorSession mới để truy cập vào thông tin chi tiết của WatchFace và ghi lại kết quả thông qua Activity.setWatchRequestResult. Để hỗ trợ việc này, chúng tôi thêm ProviderInfoRetriever.requestPreviewComplicationData cho phép trình chỉnh sửa mặt đồng hồ yêu cầu ComplicationData xem trước. ComplicationData xem trước có nhiều ưu điểm hơn so với với dữ liệu trực tiếp, bạn không cần phải lo lắng về việc hiển thị hộp thoại cấp quyền khi đang kết xuất trình chỉnh sửa (lưu ý rằng nếu người dùng chọn một nhà cung cấp có quyền, họ vẫn sẽ được nhắc cấp quyền đó).

Thay đổi về API

  • ComplicationProviderInfo hiện có một trường dành cho ComponentName của nhà cung cấp. Sau này, chúng tôi sẽ thêm tính năng hỗ trợ cho trường này vào WearOS, còn trong thời gian chờ đợi thì trường này sẽ rỗng. (Id8fc4)
  • Chúng tôi thêm ProviderInfoRetriever.requestPreviewComplicationData cho phép trình chỉnh sửa mặt đồng hồ yêu cầu ComplicationData xem trước. Điều này hữu ích vì các vùng chức năng trực tiếp có thể yêu cầu quyền, và giờ đây bạn có thể hiển thị dữ liệu xem trước cho các vùng chức năng không hoạt động. (I2e1df)
  • ComplicationManager hiện là một tham số không bắt buộc của hàm khởi tạo WatchFace, và các đối số đã được sắp xếp lại để cho phép điều này. (I66c76)
  • Chúng tôi thêm một Gói tuỳ chọn vào các Vùng chức năng. Bạn có thể thiết lập Gói đó hợp nhất với ý định được gửi đi để khởi chạy hoạt động của trình chọn nhà cung cấp. (Ifd4ad)
  • Chúng tôi thêm một thư viện wear-watchface-editor mới để hỗ trợ mặt đồng hồ và các trình chỉnh sửa do SysUI lưu trữ. SysUI sẽ khởi chạy các trình chỉnh sửa này bằng cách gửi một ý định. Dịch vụ hoạt động trên mặt đồng hồ có thể sử dụng lớp EditorSession mới để truy cập thông tin chi tiết về WatchFace và ghi lại kết quả thông qua Activity.setWatchRequestResult. (I2110d)
  • LayerMode.DRAW_HIGHLIGHTED hiện được gọi là LayerMode.DRAW_OUTLINED và RenderParameters.highlightComplicationId hiện được gọi là RenderParameters.selectedComplicationId và ngoài việc vẽ đường viền sẽ thêm một vùng nổi bật trên vùng chức năng được chỉ định (I90a40)
  • Nếu dịch vụ gặp sự cố trong khi chờ tạo mặt đồng hồ, bạn có thể gửi một ServiceStartFailureException để giải quyết hoạt động tương lai của WatchFaceControlClient.getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient. (I0f509)
  • EditorSession.complicationPreviewData hiện là một ListenableFuture vì việc tìm nạp dữ liệu này là một quá trình không đồng bộ. (Iead9d)

Sửa lỗi

  • Chúng tôi sẽ xoá những trường không dùng đến khỏi ComplicationOverlay (chỉ để lại những trường đang bật và các complicationBound). (I17b71)

Phiên bản 1.0.0-alpha05

Ngày 13 tháng 1 năm 2021

Phát hành androidx.wear:wear-*:1.0.0-alpha05. Phiên bản 1.0.0-alpha05 bao gồm các thay đổi sau.

Tính năng mới

Các mặt đồng hồ thường hỗ trợ một số cấu hình vùng chức năng với số lượng vùng chức năng được hiển thị khác nhau. Để giúp việc thiết lập trở nên dễ dàng hơn, chúng tôi hiện hỗ trợ tắt các vùng chức năng vào lúc ban đầu bằng cách gọi setEnabled(false) trên trình tạo. Sau đó, bạn có thể bật các vùng chức năng này thông qua ComplicationsUserStyleSetting.

Thay đổi về API

  • Để việc sử dụng trở nên dễ dàng hơn, ComplicationHelperActivity hiện chấp nhận Collection<ComplicationType> thay vì một mảng int. (I1f13d)
  • ProviderInfoRetriever.retrieveProviderInfo hiện trả về chính xác ListenableFuture<ProviderInfo[]>. (If2710)
  • Giờ đây, bạn có thể tạo một vùng chức năng bị tắt vào lúc ban đầu bằng cách gọi setEnabled(false) trên trình tạo. (Idaa53)
  • WatchFaceState hiện có một thuộc tính isHeadless, chỉ trả về true trong trường hợp thực thể không có giao diện (headless). (Ifa900)
  • ComplicationDrawable hiện hỗ trợ tuỳ chọn tải đồng thời các đối tượng có thể vẽ. Tính năng này được sử dụng bởi các API ảnh chụp màn hình. (I34d4a)

Phiên bản 1.0.0-alpha04

Ngày 16 tháng 12 năm 2020

Phát hành androidx.wear:wear-*:1.0.0-alpha04. Phiên bản 1.0.0-alpha04 bao gồm các thay đổi sau.

Tính năng mới

  • Thư viện mặt đồng hồ Wear OS hiện hỗ trợ việc đặt giới hạn cho mỗi Type. Ví dụ: bạn có thể chuyển sang sử dụng hộp bao quanh rộng hơn dành cho ComplicationType.LONG_TEXT trong khi vẫn đang sử dụng một hộp bao quanh nhỏ hơn cho các Type khác.

Thay đổi về API

  • Các vùng chức năng hiện sử dụng ComplicationBounds bao bọc một Map<ComplicationType, RectF> để hỗ trợ từng kích thước của loại vùng chức năng. (I1ebe7)
  • RenderParameters hiện cho phép bạn chỉ định sắc độ màu nổi bật để dùng trong ảnh chụp màn hình. (Iff42b)
  • Với ngoại lệ về các các giới hạn, bạn hiện phải sử dụng ComplicationsUserStyleSetting để sửa đổi các vùng chức năng, nhằm đảm bảo hệ điều hành luôn được đồng bộ hoá. (I8dc5d)
  • Trình kết xuất hiện là một lớp kín. Điều này có nghĩa là CanvasRenderer và GlesRenderer hiện là các lớp bên trong của lớp Renderer. (Iab5d4, b/173803230)
  • Đã đổi tên CanvasComplicationDrawable.drawHighlight thành drawOutline. ObservableWatchData hiện thiếu một số chú thích UiThread. ScreenState hiện đã bị xoá hoàn toàn khỏi WatchState. (If1393)
  • Cấp API tối thiểu cho wear-watchface hiện là 25. Lưu ý rằng tính năng hỗ trợ canvas phần cứng yêu cầu API cấp 26 trở lên. (Ic9bbd)
  • InteractiveWatchFaceWcsClient hiện có trình trợ giúp getComplicationIdAt. (I05811)
  • Cấp API dành cho wear-watchface-client đã giảm xuống còn 25. Tuy nhiên, các API chụp ảnh màn hình yêu cầu API cấp 27. (Id31c2)

Sửa lỗi

  • Hiện tại, chúng tôi sẽ hiển thị ComplicationType của ComplicationData đang có trong ComplicationState. (I9b390)
  • InteractiveWatchFaceWcs hiện có một phương thức bringAttentionToComplication để làm nổi bật nhanh vùng chức năng được chỉ định. (I6d31c)
  • InteractiveWatchFaceWcsClient#setUserStyle hiện gặp tình trạng quá tải khi chấp nhận Map<string, string=""> (có khả năng tránh phải nhận thêm một lượt IPC trọn vòng cần thiết để khởi tạo UserStyle). (I24eec)</string,>

Phiên bản 1.0.0-alpha03

Ngày 2 tháng 12 năm 2020

Phát hành androidx.wear:wear-*:1.0.0-alpha03. Phiên bản 1.0.0-alpha03 bao gồm các thay đổi sau.

Tính năng mới

Lớp Complication hiện có một thuộc tính compicationData cho phép mặt đồng hồ quan sát những thay đổi của ComplicationData. Điều này giúp bạn có thể thay đổi kích thước của vùng chức năng dựa trên Type của vùng chức năng

Các tốc độ khung hình biến thiên hiện đã được hỗ trợ bằng cách gán cho Renderer.interactiveDrawModeUpdateDelayMillis. Đối với các mặt đồng hồ chạy các ảnh động ngắn mỗi giây, điều này có thể giúp tiết kiệm pin hiệu quả bằng cách chuyển sang chế độ ngủ khi không hoạt động.

Thay đổi về API

  • BACKGROUND_IMAGE đã được đổi tên thành PHOTO_IMAGE cùng với các lớp có liên quan. Loại vùng chức năng này không được dùng riêng cho nền, do đó tên gọi thay đổi. (I995c6)
  • DefaultComplicationProviderPolicy đã được chú thích đúng cách bằng IntDefs. (I3b431)
  • Lớp ẩn TimeDependentText không còn được hiển thị qua ContentDescriptionLabel nữa, thay vào đó chúng tôi thêm một trình truy cập để lấy văn bản tại một thời điểm được chỉ định. (Ica692)
  • Hàm khởi tạo của ObservableWatchData hiện là nội bộ. (I30121, b/173802666)
  • Vùng chức năng hiện có compicationData để mặt đồng hồ quan sát được những thay đổi của ComplicationData. Vùng chức năng cũng có một lệnh gọi isActiveAt mới. Lệnh gọi này có thể được dùng để cho biết về nhu cầu kết xuất nội dung tại ngày giờ đã định sẵn. (Ic0e2a)
  • SharedMemoryImage trống không còn trong API công khai. (I7ee17)
  • WatchFace.overridePreviewReferenceTimeMillis hiện có chú thích IntRange và các phương thức getter, setter cũng có tên nhất quán. (Ia5f78)
  • Để tăng tính rõ ràng, Complication.Builder hiện được tạo thông qua Complication.createRoundRectComplicationBuilder hoặc Complication.createBackgroundComplicationBuilder (I54063)
  • Thêm WatchFace.TapListener, cho phép WatchFace có thể quan sát các lần nhấn không được vùng chức năng ghi nhận. (Ic2fe1, b/172721168)
  • WatchFace hiện hỗ trợ các tốc độ khung hình biến thiên bằng cách gán cho Renderer.interactiveDrawModeUpdateDelayMillis. Điều này có thể giúp duy trì thời lượng pin bằng cách chuyển sang chế độ ngủ khi không hoạt động. (I707c9)
  • WatchFace.Builder không còn cần thiết nữa; invalidate() và interactiveUpdateRateMillis đã được chuyển sang Renderer. (I329ea)
  • Để cải thiện khả năng tương tác với Java, chúng tôi đã đổi tên các phương thức getter dành cho các thuộc tính boolean trong WatchState (I6d2f1 )
  • Để đảm bảo tính nhất quán, chúng tôi đã đổi tên TapListener thành TapCallback và InvalidateCallback thành InvalidateListener. (I9414e)
  • Để rõ ràng hơn, chúng tôi đã chuyển các tuỳ chọn Phong cách (Style) mặt đồng hồ Wear 2.0 đã sang lớp riêng. Các phương thức setter của WatchFace.Builder hiện có các phương thức getter tương ứng của lớp WatchFace. (Iefdfc)
  • Thêm InteractiveWatchFaceWcsClient và WatchFaceControlClient.getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient. Phương thức này sẽ nhận một thực thể hiện có hoặc tạo thực thể này sau khi dịch vụ Wallaper đã kết nối và tạo công cụ. (Id666e)
  • WatchFaceControlClient hiện là giao diện cho phép mô phỏng (mocking) trong quy trình kiểm thử. (I875d9)
  • Để tạo điều kiện tốt hơn cho việc kiểm thử, HeadlessWatchFaceClient, InteractiveWatchFaceSysUiClientImpl, InteractiveWatchFaceWcsClient hiện là các giao diện. (I7cdc3)
  • Thêm các chú thích vào các phương thức trong wear-watchface-complications-rendering (I0d65c)

Sửa lỗi

  • Xoá hình dạng màn hình khỏi DeviceConfig để tránh việc trùng lặp android.content.res.Configuration#isScreenRound() (Ifadf4)
  • Thay đổi WatchFaceControlClient.getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient để chấp nhận một Map<String, String> thay vì UserStyle, bởi vì việc tạo UserStyle sẽ gặp khó khăn khi không biết rõ giản đồ (mà bạn chỉ có thể nhận được sau khi tạo ứng dụng). (Iea02a)
  • Sửa InteractiveWatchFaceWcsClient để sử dụng ComplicationState thay vì định dạng lưới. (Icb8a4)
  • UserStyleSettings hiện là một lớp kín vì các trình chỉnh sửa mặt đồng hồ chỉ hiểu các lớp đã được tích hợp sẵn. (I2d797)

Phiên bản 1.0.0-alpha02

Ngày 11 tháng 11 năm 2020

Phát hành androidx.wear:wear-*:1.0.0-alpha02. Phiên bản 1.0.0-alpha02 bao gồm các thay đổi sau.

Thay đổi về API

  • ComplicationDetails hiện có tên là ComplicationState và được bao bọc đúng cách, cũng như việc sử dụng @ComplicationData.ComplicationType của thư viện hỗ trợ Wearable đã được chuyển sang androidx ComplicationType. (I4dd36)
  • Thêm một tham số highlightedComplicationId không bắt buộc vào RenderParameters. Tham số này giúp bạn yêu cầu làm nổi bật một vùng chức năng đơn lẻ trong ảnh chụp màn hình. (I66ce9)
  • ComplicationProviderService để đảm bảo tính nhất quán khi sử dụng API vùng chức năng có style mới(Id5aea)
  • Giờ đây, getPreviewReferenceTimeMillis sẽ có các lượt tham chiếu từ DeviceConfig. (I779fe)
  • Đơn giản hoá giao diện API Trình kết xuất, có thể sử dụng SurfaceHolder.Callback nhằm quan sát những thay đổi. (I210db)
  • CanvasComplicationRenderer không mở rộng từ Renderer, và được đổi tên để trở nên rõ ràng hơn. (Ibe880)

Sửa lỗi

  • Phiên bản đầu tiên của androidx.wear:wear-watchface-client (I1e35e)
  • Để rõ ràng hơn, chúng tôi đã đổi tên của GlesTextureComplication#renderer (Ib78f7)
  • Để rõ ràng hơn, chúng tôi đổi tên StyleCategory thành StyleSetting (I488c7)
  • Thêm UserStyleSchema để API rõ ràng hơn (If36f8)

Phiên bản 1.0.0-alpha01

Ngày 28 tháng 10 năm 2020

Phát hành androidx.wear:wear-complications-*:1.0.0-alpha01androidx.wear:wear-watchface-*:1.0.0-alpha01. Phiên bản 1.0.0-alpha01 bao gồm các thay đổi sau.

Thay đổi về API

  • Đã xoá một số thành phần mà chúng tôi không định hiển thị trong API công khai. (I41669)
  • Tạo thư viện androidx.wear:wear-complications-provider. (I77f1f)
  • ComplicationUserStyleCategory là danh mục mới được đề xuất để định cấu hình các vùng chức năng (I96909)
  • Thêm API wear-complication-data. (I7c268)
  • Các hàm có giá trị trả về kiểu boolean đi kèm với tiền tố là “is” thay vì “get” (If36ff)
  • Lời khuyên của API là tránh sử dụng protected, cho nên lớp này đã được cấu trúc lại để đưa các tham số vào thông qua hàm khởi tạo. (I61644)
  • Để rõ ràng hơn, chúng tôi đổi tên setBackgroundComplication. (I96fe3)
  • Sử dụng các thuộc tính Kotlin đối với các thuộc tính isHighlighted và data của ComplicationDrawable (I4dcc8)
  • Chúng tôi thêm Complication#invalidate() thay vì ComplicationRenderer.InvalidateCallback (I4f4c6)
  • Các API này hiện không còn được sử dụng trong WearableSupport và bị xoá tại đây. (Ib425c)
  • Đổi tên một số phương thức xây dựng WatchFace để nhấn mạnh bản chất kế thừa của Wear 2.0. (Idb775)
  • API beta đầu tiên được đề xuất dành cho wear/wear-watchface (Id3981)
  • Phiên bản API được theo dõi đầu tiên. (Ie9fe6)
  • Để đảm bảo tính nhất quán, chúng tôi đang ẩn IntDef của ComplicationDrawable.BorderStyle một cách thích hợp và chuyển sang ComplicationStyle. (I27f7a)
  • Thêm các chú thích bị thiếu cho các phương thức ComplicationStyle (I838fd)
  • Thư viện này không có giao diện API công khai (I88e2b)
  • Tất cả các lớp Option trong danh mục Phong cách (Style) hiện đã được hoàn thiện đúng cách. (Ib8323)
  • Phiên bản API được theo dõi đầu tiên. (I27c85)

Sửa lỗi

  • Thay đổi ComplicationProviderService để có phương thức getComplicationPreviewData rõ ràng. (I4905f)
  • API kiểm tra lỗi mã nguồn dành cho MissingGetterMatchingBuilder được bật đối với androidx (I4bbea, b/138602561)
  • Đổi tên wear-complications-rendering. (Ifea02)
  • Tên hiển thị của danh mục Phong cách (Style) hiện là CharSequences (I28990)
  • Thay thế Override bằng Overlay để phù hợp với các quy ước đặt tên theo theme và Phong cách (Style) hiện tại. (I4fde9)
  • Để rõ ràng hơn, chúng tôi đã đổi tên UserStyle#getOptions. (I695b6)

Phiên bản 1.2.0

Phiên bản 1.2.0

Ngày 15 tháng 9 năm 2021

Phát hành androidx.wear:wear:1.2.0. Phiên bản 1.2.0 bao gồm các thay đổi sau.

Thay đổi quan trọng kể từ phiên bản 1.1.0

  • Thêm thành phần CurvedText để dễ dàng viết văn bản cong theo độ cong của vòng tròn lớn nhất nội tiếp được trong khung nhìn. Ví dụ về cách sử dụng:

    <androidx.wear.widget.CurvedText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="example curved text"
            app:anchorAngleDegrees="180"
            app:anchorPosition="center"
            app:clockwise="false"
            style="@android:style/TextAppearance.Large"
    />
    

    Ví dụ về văn bản cong trong Android Wear

  • Thêm vùng chứa ArcLayout để sắp xếp từng phần tử con trên một vòng cung theo chiều kim đồng hồ hoặc ngược chiều kim đồng hồ. Các phần tử con này có thể là cả tiện ích Android chuẩn hoặc tiện ích "cong" có triển khai giao diện ArcLayout.Widget. (I536da) Ví dụ về cách sử dụng:

    <androidx.wear.widget.ArcLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:anchorPosition="center">
          <ImageView
                  android:layout_width="20dp"
                  android:layout_height="20dp"
                  android:src="@drawable/ic_launcher"
          />
          <androidx.wear.widget.CurvedText
                  android:layout_width="match_parent"
                  android:layout_height="match_parent"
                  android:text="Curved Text"
                  style="@android:style/TextAppearance.Small"
                  android:padding="2dp"
           />
      </androidx.wear.widget.WearArcLayout>
    

    Ví dụ về văn bản cong trong Android Wear

  • Thêm một vùng chứa bố cục mới, DismissibleFrameLayout, có khả năng xử lý tính năng nhấn nút quay lại để loại bỏ (back-button-dismiss) và/hoặc vuốt để loại bỏ (swipe-to-dismiss) trong một hoạt động. Bạn phải thêm ít nhất một trình nghe để thực hiện hành động loại bỏ. Trình nghe thường sẽ xoá một khung nhìn chứa trong (containing view) hoặc một phân đoạn khỏi hoạt động hiện tại. Chúng tôi cung cấp cho bạn setSwipeDismissible(boolean) & setBackButtonDismissible(boolean để kiểm soát trực tiếp các tính năng. Bố cục mới này nhằm mục đích thay thế SwipeDismissFrameLayout. hiện có.

  • Thêm tính năng hỗ trợ cho biết rằng một Hoạt động có thể được "tự động tiếp tục" khi thiết bị rời khỏi chế độ môi trường xung quanh trong lớp AmbientModeSupport. Chức năng này trước đây có trong lớp WearableActivity (hiện không còn sử dụng) từ WearableSupportLibrary. (I336ab)

  • Di chuyển lớp WearableCalendarContract từ Thư viện hỗ trợ Wearable. API này cung cấp một tập hợp con dữ liệu có sẵn thông qua CalendarContract nhưng sẽ tự động đồng bộ hoá với các thiết bị đeo. (I6f2d7)

  • Thêm API mới WearTypeHelper trong androidx.wear.utils để xác định thiết bị Wear được cung cấp có dành cho Trung Quốc hay không. (Ib01a9)

  • Thêm các tính năng hỗ trợ tiếp cận vào androidx.wear.widget.ConfirmationOverlay; các tính năng này sẽ đọc to các thông báo nếu được thiết lập sau phần mô tả hoạt ảnh. (I524dd)

  • Khắc phục lỗi làm cho ConfirmationActivity gặp sự cố nếu không được cung cấp thông báo. (Ie6055)

  • Khắc phục lỗi RecyclerViews cuộn theo chiều ngang khiến cho WearableDrawerLayout xem được tất cả các tương tác. (I24c7f)

Phiên bản 1.2.0-rc01

Ngày 1 tháng 9 năm 2021

androidx.wear:wear:1.2.0-rc01 được phát hành mà không có sự thay đổi nào so với phiên bản thử nghiệm cuối cùng. Phiên bản 1.2.0-rc01 bao gồm các thay đổi sau.

Phiên bản 1.2.0-beta01

Ngày 18 tháng 8 năm 2021

Phát hành androidx.wear:wear:1.2.0-beta01. Phiên bản 1.2.0-beta01 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục lỗi khiến ConfirmationActivity gặp sự cố nếu không được cung cấp thông báo. (Ie6055)

Phiên bản 1.2.0-alpha13

Ngày 4 tháng 8 năm 2021

Phát hành androidx.wear:wear:1.2.0-alpha13. Phiên bản 1.2.0-alpha13 bao gồm các thay đổi sau.

Thay đổi về API

  • WearTypeHelper.isChinaDevice đã đổi tên thành WearTypeHelper.isChinaBuild. (I47302)

Sửa lỗi

  • Chúng tôi thêm các tính năng hỗ trợ tiếp cận vào androidx.wear.widget.ConfirmationOverlay; các tính năng này sẽ đọc to các thông báo nếu nếu được thiết lập sau phần mô tả hoạt ảnh. (I524dd)

Phiên bản 1.2.0-alpha12

Ngày 21 tháng 7 năm 2021

Phát hành androidx.wear:wear:1.2.0-alpha12. Phiên bản 1.2.0-alpha12 bao gồm các thay đổi sau.

Thay đổi về API

  • Chúng tôi thêm một API mới WearTypeHelper trong androidx.wear.utils để xác định xem thiết bị Wear được chọn có dành cho Trung Quốc hay không. (Ib01a9)

Phiên bản 1.2.0-alpha11

Ngày 30 tháng 6 năm 2021

Phát hành androidx.wear:wear:1.2.0-alpha11. Phiên bản 1.2.0-alpha11 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục lỗi RecyclerViews cuộn theo chiều ngang khiến cho WearableDrawerLayout xem được tất cả các tương tác. (I24c7f)

Phiên bản 1.2.0-alpha10

Ngày 2 tháng 6 năm 2021

Phát hành androidx.wear:wear:1.2.0-alpha10. Phiên bản 1.2.0-alpha10 bao gồm các thay đổi sau.

Tính năng mới

  • Alpha10 cải thiện khả năng hỗ trợ tiếp cận đối với Văn bản cong (Curved Text) và ArcLayouts. Phiên bản này cũng thêm một số phần đổi tên nhỏ trong DismissibleFrameLayout để giúp làm rõ API.

Thay đổi về API

  • Chúng tôi đã đổi tên các phương thức sau trong DismissibleFrameLayout (Ib195e):
    • Callback#onDismissed > Callback#onDismissedFinished
    • isSwipeDismissible -> isDismissableBySwipe
    • isBackButtonDismissible > isDismissableByBackButton
  • Chúng tôi đã hoàn thiện các phương thức sau đây (Ib195e):
    • setBackButtonDismissible
    • setSwipeDismissible
    • registerCallback
    • unregisterCallback

Sửa lỗi

  • Sử dụng nội dung của CurvedTextView trên Talkback. (I05798)
  • Hỗ trợ tiếp cận tốt hơn đối với các khung nhìn thông thường trong một ArcLayout. (I4418d)

Phiên bản 1.2.0-alpha09

Ngày 18 tháng 5 năm 2021

Phát hành androidx.wear:wear:1.2.0-alpha09. Phiên bản 1.2.0-alpha09 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm một hàm mới CurvedTextView.setTypeface() (tương tự như hàm của TextView) để thiết lập kiểu chữ và kiểu in đậm/in nghiêng. (I4653c)
  • Đổi tên WearArcLayout thành ArcLayout, WearCurvedText thành CurvedTextWearArcLayout.ArcLayoutWidget thành ArcLayout.Widget. (I6e5ce)
    • Trên ArcLayout.Widget, đổi tên getThicknessPx thành getThickness.
    • Các hằng số căn chỉnh dọc trên ArcLayout.LayoutParams hiện được đặt tên bắt đầu bằng VERTICAL_ALIGN_ (thay vì VALIGN_ trước đó)
  • Trên CurvedTextView, các phương thức setMinSweepDegreessetMaxSweepDegrees đã được thay thế bằng setSweepRangeDegrees (I7a9d9)

Phiên bản 1.2.0-alpha08

Ngày 5 tháng 5 năm 2021

Phát hành androidx.wear:wear:1.2.0-alpha08. Phiên bản 1.2.0-alpha08 bao gồm các thay đổi sau.

Thay đổi về API

  • Để cải thiện độ rõ ràng của mã, chúng tôi thêm các chú thích @FloatRange vào một số tham số về góc và các kiểu trả về. (I430dd)
  • Trong giao diện WearArcLayout.ArcLayoutWidget, phương thức insideClickArea hiện có tên là isPointInsideClickArea. (Ia7307)

Phiên bản 1.2.0-alpha07

Ngày 24 tháng 3 năm 2021

Phát hành androidx.wear:wear:1.2.0-alpha07. Phiên bản 1.2.0-alpha07 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục các lỗi xảy ra với các phần tử con không cong bên trong WearArcLayout do sử dụng kích thước màn hình có chiều cao lớn hơn chiều rộng. Các phần tử con không cong này hiện đã được đặt chính xác bên trong một cung tròn trên tất cả các loại màn hình.

Phiên bản 1.2.0-alpha06

Ngày 27 tháng 1 năm 2021

Phát hành androidx.wear:wear:1.2.0-alpha06. Phiên bản 1.2.0-alpha06 bao gồm các thay đổi sau.

Thay đổi về API

  • Di chuyển thư viện Ongoing Activities sang một thư viện phụ mới: wear-ongoing. Các lớp hiện đang hoạt động trong gói androidx.wear.ongoing (trước đây là androidx.wear.ongoingactivities) (I7c029)
  • Di chuyển lớp WearableCalendarContract từ Thư viện hỗ trợ Wearable sang AndroidX. API này cung cấp một tập hợp con dữ liệu có sẵn thông qua CalendarContract nhưng sẽ tự động đồng bộ hoá với các thiết bị đeo. (I6f2d7)

Sửa lỗi

  • Tắt tính năng nhấn nút quay lại để loại bỏ (back-button-dismiss) theo mặc định trong DismissibleFrameLayout vì tính năng vuốt để loại bỏ (swipe-to-dismiss) vẫn là cách chính để di chuyển trở lại chế độ toàn màn hình trên các thiết bị Wear (Ic24e3)
  • Khắc phục một số vấn đề khi xử lý chế độ hiển thị của các phần tử con trên WearArcLayout (Icf912)

Phiên bản 1.2.0-alpha05

Ngày 13 tháng 1 năm 2021

Phát hành androidx.wear:wear:1.2.0-alpha05. Phiên bản 1.2.0-alpha05 bao gồm các thay đổi sau.

Sửa lỗi

  • Cập nhật javadoc của lớp AmbientModeSupport để cung cấp các đoạn mã mẫu nhằm minh hoạ rõ hơn về cách sử dụng chung của lớp này.

Phiên bản 1.2.0-alpha04

Ngày 16 tháng 12 năm 2020

Phát hành androidx.wear:wear:1.2.0-alpha04. Phiên bản 1.2.0-alpha04 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm tính năng hỗ trợ cho biết rằng một Hoạt động có thể được "tự động tiếp tục" khi thiết bị rời khỏi chế độ môi trường xung quanh trong lớp AmbientModeSupport. Chức năng này trước đây có trong lớp WearableActivity (hiện không còn sử dụng) từ WearableSupportLibrary. (I336ab)
  • OngoingActivity
    • Hiện tại, bạn có thể thiết lập Danh mục (Category) khi tạo một OngoingActivity, ví dụ: OngoingActivitiy.Builder.getCategory(String)
    • OngoingActivityData hiện có dấu thời gian là thời điểm tạo OngoingActivity – OngoingActivityData.getTimestamp()
    • (I91cb4)
  • Thêm tính năng hỗ trợ cho việc đặt lề các phần tử con của WearArcLayout bằng cách thay đổi các tham số bố cục để mở rộng MarginLayoutParams, nói cách khác, WearArcLayout.LayoutParams mở rộng android.view.ViewGroup.MarginLayoutParams. (I2cd88)
  • Thay đổi kiểu neo mặc định của WearCurvedTextView thành WearArcLayout.ANCHOR_CENTER (trước đây là WearArcLayout.ANCHOR_START). Điều này đơn giản hoá sự ràng buộc giữa bố cục vòng cung và văn bản cong (văn bản cong được vẽ theo mặc định ở giữa phần trên và bố cục vòng cung có thể xoay văn bản cong đến vị trí cần thiết). (I105ff)

Phiên bản 1.2.0-alpha03

Ngày 2 tháng 12 năm 2020

Phát hành androidx.wear:wear:1.2.0-alpha03. Phiên bản 1.2.0-alpha03 bao gồm các thay đổi sau.

Tính năng mới

Một vùng chứa có bố cục mới DismissibleFrameLayout có chức năng xử lý tính năng nhấn nút quay lại để loại bỏ (back-button-dismiss) và/hoặc vuốt để loại bỏ (swipe-to-dismiss) trong một hoạt động. Bạn phải thêm ít nhất một trình nghe để thực hiện hành động loại bỏ. Trình nghe thường sẽ xoá một khung nhìn chứa trong (containing view) hoặc một phân đoạn khỏi hoạt động hiện tại. Chúng tôi cung cấp cho bạn setSwipeDismissible(boolean) & setBackButtonDismissible(boolean để kiểm soát trực tiếp các tính năng. Bố cục mới này nhằm mục đích thay thế SwipeDismissFrameLayout. hiện có.

Hiện tại, các tiện ích cong sẽ xử lý các sự kiện nhấn. Các tiện ích thông thường bên trong WearArcLayout sẽ nhận tất cả các sự kiện nhấn và ánh xạ tới không gian toạ độ. WearCurvedTextView (ở bên trong WearArcLayout hoặc không) có thể thiết lập các trình xử lý onClick và onLongClick.

Các lớp OngoingActivities hiện là VersionedParcelables, thay vì sử dụng tính năng tuần tự hoá/giải tuần tự tuỳ chỉnh. Giờ đây, bạn bắt buộc phải có biểu tượng tĩnh và ý định nhấn.

Thay đổi về API

  • Thuộc tính "sweepDegrees" dành cho WearCurvedTextView được tách thành minSweepDegrees và maxSweepDegrees để mang đến một bố cục linh hoạt hơn cho tiện ích này.

Phiên bản 1.2.0-alpha02

Ngày 11 tháng 11 năm 2020

Phát hành androidx.wear:wear:1.2.0-alpha02. Phiên bản 1.2.0-alpha02 bao gồm các thay đổi sau.

Bản phát hành này lần đầu tiên bổ sung một “API Hoạt động đang diễn ra” mới. Các nhà phát triển có thể sử dụng API này để báo hiệu rằng đang diễn ra một hoạt động dài (chẳng hạn như hoạt động tập thể dục hoặc phiên phát nội dung nghe nhìn). API này cho phép các nhà phát triển cung cấp nội dung cập nhật định kỳ như “quãng đường và thời gian chạy bộ” hoặc “đang phát bản nhạc” để hiển thị trên mặt đồng hồ hoặc trong trình chạy ứng dụng. Chức năng này nhắm đến các thiết bị trong tương lai có bật chức năng Hoạt động đang diễn ra.

Thay đổi về API

  • Đây là API mới dành cho các Hoạt động đang diễn ra (Ongoing Activities). API này không hoạt động trên các "thiết bị không được hỗ trợ". (I69a31)

Phiên bản 1.2.0-alpha01

Ngày 28 tháng 10 năm 2020

Phát hành androidx.wear:wear:1.2.0-alpha01. Phiên bản 1.2.0-alpha01 bao gồm các thay đổi sau.

Tính năng mới

  • Thêm thành phần WearCurvedTextView để dễ dàng viết văn bản cong theo độ cong của vòng tròn lớn nhất có thể nội tiếp trong khung nhìn. Ví dụ về cách sử dụng:
<androidx.wear.widget.WearCurvedTextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="example curved text"
        app:anchorAngleDegrees="180"
        app:anchorPosition="center"
        app:clockwise="false"
        style="@android:style/TextAppearance.Large"
/>

Ví dụ về văn bản cong trong Android Wear

  • Thêm vùng chứa WearArcLayout để sắp xếp từng phần tử con trên một vòng cung theo chiều kim đồng hồ hoặc ngược chiều kim đồng hồ. Các phần tử con này có thể là cả tiện ích Android chuẩn hoặc tiện ích "cong" có triển khai giao diện ArcLayoutWidget. Ví dụ về cách sử dụng:
<androidx.wear.widget.WearArcLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:anchorPosition="center">
      <ImageView
              android:layout_width="20dp"
              android:layout_height="20dp"
              android:src="@drawable/ic_launcher"
      />
      <androidx.wear.widget.WearCurvedTextView
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:text="Curved Text"
              style="@android:style/TextAppearance.Small"
              android:padding="2dp"
       />
  </androidx.wear.widget.WearArcLayout>

Ví dụ về văn bản cong trong Android Wear

(I536da)

Wear-Input 1.2

Phiên bản 1.2.0-alpha02

Ngày 29 tháng 9 năm 2021

Phát hành androidx.wear:wear-input:1.2.0-alpha02androidx.wear:wear-input-testing:1.2.0-alpha02. Phiên bản 1.2.0-alpha02 bao gồm các thay đổi sau.

Thay đổi về API

  • Đã đổi tên disallowEmoji thành setEmojisAllowed trong WearableRemoteInputExtender được sử dụng để quyết định việc hiển thị tuỳ chọn vẽ biểu tượng cảm xúc. (I28393)

Phiên bản 1.2.0-alpha01

Ngày 15 tháng 9 năm 2021

Phát hành androidx.wear:wear-input:1.2.0-alpha01androidx.wear:wear-input-testing:1.2.0-alpha01. Phiên bản 1.2.0-alpha01 bao gồm các thay đổi sau.

Thay đổi về API

  • Đã hiển thị tất cả hằng số vị trí của nút từ WearableButtons. (Ibb12c)
  • Thêm lớp WearableRemoteInputExtender có thể dùng để thêm các tham số bổ sung dành riêng cho Wear vào android.app.RemoteInput. (I01903)

Wear-Input 1.1.0

Phiên bản 1.1.0

Ngày 18 tháng 8 năm 2021

Phát hành androidx.wear:wear-input:1.1.0androidx.wear:wear-input-testing:1.1.0. Phiên bản 1.1.0 bao gồm các thay đổi sau.

Những thay đổi quan trọng kể từ phiên bản 1.0.0

  • Thêm RemoteInputIntentHelper.
    • Bạn có thể sử dụng lớp này để xây dựng một ý định RemoteInput. Sau đó, bạn có thể sử dụng ý định này để yêu cầu dữ liệu đầu vào từ người dùng của bạn trong một hoạt động tuỳ chỉnh.

Phiên bản 1.1.0-rc01

Ngày 4 tháng 8 năm 2021

Phát hành androidx.wear:wear-input:1.1.0-rc01androidx.wear:wear-input-testing:1.1.0-rc01. Phiên bản 1.1.0-rc01 bao gồm các thay đổi sau.

Không có thay đổi nào về API kể từ androidx.wear:wear-input:1.1.0-beta01androidx.wear:wear-input-testing:1.1.0-beta01

Phiên bản 1.1.0-beta01

Ngày 21 tháng 7 năm 2021

androidx.wear:wear-input:1.1.0-beta01androidx.wear:wear-input-testing:1.1.0-beta01 được phát hành mà không có sự thay đổi nào so với phiên bản 1.1.0-alpha03. Phiên bản 1.1.0-beta01 bao gồm các thay đổi sau.

Phiên bản 1.1.0-alpha03

Ngày 30 tháng 6 năm 2021

Phát hành androidx.wear:wear-input:1.1.0-alpha03androidx.wear:wear-input-testing:1.1.0-alpha03. Phiên bản 1.1.0-alpha03 bao gồm các thay đổi sau.

Sửa lỗi

  • Sửa lỗi khi thêm RemoteInput vào các ý định RemoteInput thông qua RemoteInputHelper.putRemoteInputsExtra khiến các ý định này bị từ chối.

Phiên bản 1.1.0-alpha02

Ngày 18 tháng 5 năm 2021

Phát hành androidx.wear:wear-input:1.1.0-alpha02androidx.wear:wear-input-testing:1.1.0-alpha02. Phiên bản 1.1.0-alpha02 bao gồm các thay đổi sau.

Thay đổi về API

  • Các phương thức của RemoteInputIntentHelper dùng để nhận hoặc đặt nội dung bổ sung biểu thị cho các nhãn (chẳng hạn như: tiêu đề, huỷ, xác nhận và đang xử lý) nay sử dụng CharSequence thay vì String cho các nhãn này. (I0e71f)

Phiên bản 1.1.0-alpha01

Ngày 27 tháng 1 năm 2021

Phát hành androidx.wear:wear-input:1.1.0-alpha01androidx.wear:wear-input-testing:1.1.0-alpha01. Phiên bản 1.1.0-alpha01 bao gồm các thay đổi sau.

Thay đổi về API

  • Di chuyển lớp RemoteInputIntent từ Thư viện hỗ trợ Wearable sang AndroidX. Lớp đã di chuyển được đổi tên thành RemoteInputIntentHelper và cung cấp các hàm trợ giúp để hỗ trợ nhập dữ liệu từ xa thông qua việc bắt đầu một ý định. (I47cee)

Wear-Input 1.0.0

Phiên bản 1.0.0

Ngày 2 tháng 12 năm 2020

Phát hành androidx.wear:wear-input:1.0.0androidx.wear:wear-input-testing:1.0.0. Phiên bản 1.0.0 bao gồm các thay đổi sau.

Bản phát hành này hoàn toàn giống với phiên bản 1.0.0-rc01.

Các tính năng chính của phiên bản 1.0.0

  • Di chuyển chức năng của WearableButton từ Thư viện hỗ trợ Wearable sang Jetpack.

  • Thêm androidx.wear.input.test.TestWearableButtonsProvider triển khai androidx.wear.input.WearableButtonsProvider để hỗ trợ các ứng dụng thử nghiệm được phát triển bằng thư viện androidx.wear:wear-input.

Phiên bản 1.0.0-rc01

Ngày 11 tháng 11 năm 2020

Phát hành androidx.wear:wear-input:1.0.0-rc01androidx.wear:wear-input-testing:1.0.0-rc01. Phiên bản 1.0.0-rc01 bao gồm các thay đổi sau.

Bản phát hành này tương tự như phiên bản 1.0.0-beta01.

Phiên bản 1.0.0-beta01

Ngày 28 tháng 10 năm 2020

androidx.wear:wear-input:1.0.0-beta01androidx.wear:wear-input-testing:1.0.0-beta01 được phát hành mà không có sự thay đổi nào so với phiên bản 1.1.0-alpha01. Phiên bản 1.0.0-beta01 bao gồm các thay đổi sau.

Wear-Input-Testing Phiên bản 1.0.0-alpha01

Ngày 14 háng 10 năm 2020

Phát hành androidx.wear:wear-input-testing:1.0.0-alpha01. Phiên bản 1.0.0-alpha01 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm androidx.wear.input.test.TestWearableButtonsProvider triển khai androidx.wear.input.WearableButtonsProvider để hỗ trợ các ứng dụng thử nghiệm được phát triển bằng thư viện androidx.wear:wear-input. (I0ed0c)

Wear-Input Phiên bản 1.0.0-alpha01

Ngày 2 tháng 9 năm 2020

Phát hành androidx.wear:wear-input:1.0.0-alpha01. Phiên bản 1.0.0-alpha01 bao gồm các thay đổi sau.

Tính năng mới

Di chuyển chức năng của WearableButton từ Thư viện hỗ trợ Wearable sang Jetpack. Chúng tôi sẽ cung cấp thêm tính năng hỗ trợ kiểm thử trong thư viện androidx.wear:wear-input-testing của bản phát hành Jetpack tiếp theo.

Phiên bản 1.1.0

Phiên bản 1.1.0

Ngày 14 háng 10 năm 2020

Phát hành androidx.wear:wear:1.1.0. Phiên bản 1.1.0 bao gồm các thay đổi sau.

Các thay đổi lớn kể từ phiên bản 1.0.0

  • Thêm một tiền tố layout_ vào thuộc tính boxedEdges (hiện là layout_BoxedEdges) dành cho BoxInsetLayout để tuân thủ quy ước đặt tên trên Android. Điều này sẽ giải quyết lỗi linter trong Android Studio đối với các thuộc tính này. (I4272f)
  • Thêm tuỳ chọn EXTRA_ANIMATION_DURATION_MILLIS vào ConfirmationActivity để cho phép hiển thị hộp thoại xác nhận trong một khoảng thời gian nhất định. (adb83ce, b/143356547)
  • Cập nhật WearableActionDrawView để trì hoãn việc thêm ngăn kéo thao tác cho đến khi ngăn kéo trước đó được mở lần đầu tiên. (I01026, b/163870541)

Phiên bản 1.1.0-rc03

Ngày 2 tháng 9 năm 2020

Phát hành androidx.wear:wear:1.1.0-rc03. Phiên bản 1.1.0-rc03 bao gồm các thay đổi sau.

Sửa lỗi

  • Khắc phục vấn đề Ngăn kéo thao tác không hiển thị nội dung khi ngăn mở. (I01026, b/163870541)

Phiên bản 1.1.0-rc02

Ngày 24 tháng 6 năm 2020

Phát hành androidx.wear:wear:1.1.0-rc02. Phiên bản 1.1.0-rc02 bao gồm các thay đổi sau.

Sửa lỗi

  • Thêm một tiền tố layout_ vào thuộc tính boxedEdges (hiện là layout_boxedEdges) dành cho BoxInsetLayout để tuân thủ quy ước đặt tên trên Android. Điều này sẽ giải quyết lỗi linter trong Android Studio đối với các thuộc tính này.

Phiên bản 1.1.0-rc01

Ngày 14 tháng 5 năm 2020

androidx.wear:wear:1.1.0-rc01 được phát hành mà không có sự thay đổi nào so với phiên bản .1.0-beta01. Phiên bản 1.1.0-rc01 bao gồm các thay đổi sau.

Phiên bản 1.1.0-beta01

Ngày 29 tháng 4 năm 2020

androidx.wear:wear:1.1.0-beta01 được phát hành mà không có sự thay đổi nào so với phiên bản androidx.wear:wear:1.1.0-alpha01. Phiên bản 1.3.0-beta01 bao gồm các thay đổi sau.

Phiên bản 1.1.0-alpha01

Ngày 15 tháng 4 năm 2020

Phát hành androidx.wear:wear:1.1.0-alpha01. Phiên bản 1.1.0-alpha01 bao gồm các thay đổi sau.

Thay đổi về API

  • Thêm tuỳ chọn EXTRA_ANIMATION_DURATION_MILLIS vào ConfirmationActivity để cho phép hiển thị hộp thoại xác nhận trong một khoảng thời gian nhất định. (adb83ce, 134523c, b/143356547)

Sửa lỗi

  • Cập nhật WearableActionDrawView để trì hoãn việc thêm ngăn kéo thao tác cho đến khi ngăn kéo trước đó được mở lần đầu tiên. (5cd32f7)