Tin tức về sản phẩm

Đưa Androidify lên Wear OS bằng Watch Face Push

Đọc trong 3 phút
Garan Jenkin
Kỹ sư Quan hệ với nhà phát triển

 

 

Vài tháng trước, chúng tôi đã ra mắt lại Androidify dưới dạng một ứng dụng để tạo các bot Android phù hợp với từng người dùng. Androidify biến ảnh selfie của bạn thành một chú robot Android vui nhộn bằng cách sử dụng Gemini và Imagen.

Tuy nhiên, vì Android có nhiều hệ số hình dạng, bao gồm cả hệ số hình dạng mới nhất là XR, nên chúng tôi đã nghĩ đến cách mang niềm vui của Androidify đến Wear OS.

Mặt đồng hồ Androidify

Vì các bot Androidify được cá nhân hoá cao, nên nơi phù hợp nhất để giới thiệu chúng là mặt đồng hồ. Đây không chỉ là nơi xuất hiện thường xuyên nhất mà còn là nơi mang tính cá nhân nhất, giúp bạn thể hiện bản thân.

demonstration.gif

Mặt đồng hồ Androidify được cá nhân hoá, tạo từ ảnh chân dung tự chụp

Androidify hiện có thể tạo mặt đồng hồ một cách linh động trong ứng dụng điện thoại, sau đó gửi mặt đồng hồ đó đến đồng hồ của bạn. Mặt đồng hồ này sẽ tự động được đặt làm mặt đồng hồ của bạn. Tất cả những điều này diễn ra trong vài giây!

Thiết kế cao cấp

image.png

Quy trình từ đầu đến cuối để tạo và cài đặt mặt đồng hồ

Để đạt được trải nghiệm toàn diện, bạn cần kết hợp một số công nghệ với nhau, như minh hoạ trong sơ đồ thiết kế cấp cao này.

Trước hết, hình đại diện của người dùng được kết hợp với một mẫu Định dạng mặt đồng hồ có sẵn, sau đó được đóng gói thành một APK. Điều này đã được xác thực – vì những lý do sẽ được giải thích! – và gửi đến đồng hồ.

Khi nhận được thông báo này, đồng hồ sẽ dùng Watch Face Push API mới (một phần của Wear OS 6) để cài đặt và kích hoạt mặt đồng hồ.

Hãy cùng tìm hiểu chi tiết:

Tạo mẫu mặt đồng hồ

Mặt đồng hồ được tạo từ một mẫu, bản thân mẫu này được thiết kế trong Watch Face Designer. Đây là trình bổ trợ mới của chúng tôi cho Figma, giúp bạn tạo mặt đồng hồ theo Định dạng mặt đồng hồ ngay trong Figma.

image.png

Mẫu mặt đồng hồ Androidify trong Watch Face Designer

Trình bổ trợ này cho phép xuất mặt đồng hồ theo nhiều cách, bao gồm cả dưới dạng tài nguyên Định dạng mặt đồng hồ (WFF). Sau đó, bạn có thể dễ dàng kết hợp những thành phần này dưới dạng thành phần trong ứng dụng Androidify để tạo mặt đồng hồ cuối cùng một cách linh hoạt.

Đóng gói và xác thực

Sau khi mẫu và hình đại diện được kết hợpPortable Asset Compiler Kit (Pack) sẽ được dùng để tạo một APK.

Trong Androidify, Pack được dùng làm thư viện gốc trên điện thoại. Để biết thêm thông tin chi tiết về cách Androidify tương tác với thư viện Pack, hãy xem kho lưu trữ GitHub.

Ở bước cuối cùng trước khi truyền, APK sẽ được Trình xác thực Watch Face Push kiểm tra.

Trình xác thực này kiểm tra để đảm bảo APK phù hợp để cài đặt. Trong đó có việc kiểm tra nội dung của APK để đảm bảo đó là một mặt đồng hồ hợp lệ, cũng như một số bước kiểm tra hiệu suất. Nếu hợp lệ, trình xác thực sẽ tạo ra một mã thông báo.

Đồng hồ cần có mã thông báo này để cài đặt.

Đang gửi mặt đồng hồ

Ứng dụng Androidify trên Wear OS sử dụng WearableListenerService để theo dõi các sự kiện trên Lớp dữ liệu trên thiết bị đeo.

Ứng dụng điện thoại truyền mặt đồng hồ bằng cách kết hợp MessageClient để thiết lập quy trình, sau đó dùng ChannelClient để truyền trực tuyến APK.

Cài đặt mặt đồng hồ trên đồng hồ

Sau khi nhận được mặt đồng hồ trên thiết bị Wear OS, ứng dụng Androidify sẽ dùng Watch Face Push API mới để cài đặt mặt đồng hồ:

val wfpManager = 

    WatchFacePushManagerFactory.createWatchFacePushManager(context)

val response = wfpManager.listWatchFaces()



try {

    if (response.remainingSlotCount > 0) {

        wfpManager.addWatchFace(apkFd, token)

    } else {

        val slotId = response.installedWatchFaceDetails.first().slotId

        wfpManager.updateWatchFace(slotId, apkFd, token)

    }

} catch (a: WatchFacePushManager.AddWatchFaceException) {

    return WatchFaceInstallError.WATCH_FACE_INSTALL_ERROR

} catch (u: WatchFacePushManager.UpdateWatchFaceException) {

    return WatchFaceInstallError.WATCH_FACE_INSTALL_ERROR

}

Androidify sử dụng phương thức addWatchFace hoặc updateWatchFace, tuỳ thuộc vào trường hợp: Watch Face Push xác định khái niệm về "các vị trí" – số lượng mặt đồng hồ mà một ứng dụng nhất định có thể cài đặt bất cứ lúc nào. Đối với Wear OS 6, giá trị này thực tế là 1.

Cách tiếp cận của Androidify là cài đặt mặt đồng hồ nếu có vị trí trống. Nếu không, mọi mặt đồng hồ hiện có sẽ được thay thế bằng mặt đồng hồ mới.

Đặt mặt đồng hồ đang hoạt động

Cài đặt mặt đồng hồ theo phương thức lập trình là một bước quan trọng, nhưng Androidify muốn đảm bảo mặt đồng hồ cũng là mặt đồng hồ đang hoạt động. 

Watch Face Push giới thiệu một quyền khi bắt đầu chạy mới mà ứng dụng phải được cấp để có thể đạt được điều này:

com.google.wear.permission.SET_PUSHED_WATCH_FACE_AS_ACTIVE

Sau khi có được quyền này, bạn có thể gọi phương thức wfpManager.setWatchFaceAsActive() để đặt một mặt đồng hồ đã cài đặt làm mặt đồng hồ chính.

Tuy nhiên, Androidify phải cân nhắc một số yếu tố:

  • Bạn chỉ có thể dùng setWatchFaceAsActive một lần.
  • Bạn không thể yêu cầu lại SET_PUSHED_WATCH_FACE_AS_ACTIVE sau khi người dùng từ chối.
  • Androidify có thể đã kiểm soát mặt đồng hồ đang hoạt động.

Để biết thêm thông tin chi tiết, hãy xem cách Androidify triển khai logic đặt trạng thái hoạt động.

Bắt đầu sử dụng Watch Face Push cho Wear OS

Watch Face Push là một API linh hoạt, phù hợp với việc cải thiện Androidify cũng như xây dựng các cửa hàng mặt đồng hồ đầy đủ tính năng.

Có thể bạn đang có một ứng dụng điện thoại và đang tìm kiếm cơ hội để thu hút và làm hài lòng người dùng hơn nữa?

Hoặc có thể bạn là một nhà phát triển mặt đồng hồ hiện tại đang muốn tạo cộng đồng và thư viện của riêng mình thông qua việc phát hành một ứng dụng chợ?

Hãy tham khảo các tài nguyên sau:

Ngoài ra, hãy xem video đi kèm để tìm hiểu kỹ hơn về cách chúng tôi đưa Androidify lên Wear OS!

Chúng tôi rất mong chờ những tác phẩm bạn sẽ tạo ra bằng tính năng Đẩy mặt đồng hồ!

Tác giả:

Tiếp tục đọc