Mặt đồng hồ là một dịch vụ được đóng gói trong ứng dụng Wear OS. Khi người dùng chọn một mặt đồng hồ có sẵn, hệ thống sẽ hiển thị mặt đồng hồ đó và gọi các phương thức gọi lại dịch vụ.
Khi người dùng cài đặt một ứng dụng Wear có mặt đồng hồ, thì mặt đồng hồ đó sẽ có mặt trên đồng hồ bằng cách sử dụng bộ chọn mặt đồng hồ. Ngoài ra, người dùng có thể chọn mặt đồng hồ trong ứng dụng đồng hành trên điện thoại đã được ghép nối.
Trang này mô tả cách định cấu hình dự án Wear OS để đưa vào mặt đồng hồ và cách triển khai dịch vụ mặt đồng hồ.
Tạo một dự án mặt đồng hồ
Lưu ý: Bạn nên sử dụng Android Studio để phát triển Wear OS, vì phần mềm này hỗ trợ việc thiết lập dự án, đưa vào thư viện và đóng gói thuận tiện.
Hãy hoàn tất các bước sau để tạo một dự án trong Android Studio cho mặt đồng hồ của bạn:
- Nhấp vào File > New > New project (Tệp > Mới > Dự án mới).
- Trong cửa sổ Select a project template (Chọn mẫu dự án), hãy chọn thẻ Wear, chọn Watch Face (Mặt đồng hồ) trong danh sách tuỳ chọn rồi nhấp vào Next (Tiếp theo).
- Trong cửa sổ Configure your project (Định cấu hình dự án của bạn), hãy giữ nguyên giá trị mặc định rồi nhấp vào Finish (Hoàn tất).
Android Studio tạo dự án bằng mô-đun app
cho dịch vụ mặt đồng hồ.
Phần phụ thuộc
Android Studio sẽ tự động thêm phần phụ thuộc cần thiết vào các tệp build.gradle
của bạn. Thư viện mặt đồng hồ AndroidX cũng nằm trong phần phụ thuộc này; xem mã mẫu trên GitHub để biết thông tin chi tiết về thư viện này.
Tài liệu tham khảo API cho thư viện hỗ trợ Thiết bị đeo
Tài liệu tham khảo cung cấp thông tin chi tiết về các lớp bạn sử dụng để triển khai mặt đồng hồ. Duyệt xem tài liệu tham khảo API cho thư viện hỗ trợ Thiết bị đeo.
Khai báo quyền
Mặt đồng hồ cần có quyền WAKE_LOCK
.
Thêm quyền sau đây vào các tệp kê khai của cả ứng dụng Wear OS và ứng dụng dành cho điện thoại trong phần tử manifest
:
<manifest ...> <uses-permission android:name="android.permission.WAKE_LOCK" /> <!-- Required for complications to receive complication data and open the provider chooser. --> <uses-permission android:name="com.google.android.wearable.permission.RECEIVE_COMPLICATION_DATA"/> ... </manifest>
Hỗ trợ khởi động trực tiếp
Bạn phải cung cấp mặt đồng hồ trước khi mở khoá người dùng bằng cách làm theo hướng dẫn Khởi động trực tiếp:
- Đặt thuộc tính
android:directBootAware
thànhtrue
cho dịch vụ của bạn trong tệp kê khai. - Mặt đồng hồ của bạn phải lưu trữ thông tin trong bộ nhớ đã mã hoá trên thiết bị.
Triển khai dịch vụ và phương thức gọi lại
Các mặt đồng hồ trong Wear OS được triển khai dưới dạng WatchFaceService
.
Để triển khai WatchFaceService
, bạn cần tạo 3 đối tượng: UserStyleSchema
, ComplicationSlotsManager
và WatchFace
.
Ba đối tượng này được chỉ định bằng cách ghi đè 3 phương thức trừu tượng của WatchFaceService
, như trong ví dụ sau:
Kotlin
class CustomWatchFaceService : WatchFaceService() { /** * The specification of settings the watch face supports. * This is similar to a database schema. */ override fun createUserStyleSchema(): UserStyleSchema = // ... /** * The complication slot configuration for the watchface. */ override fun createComplicationSlotsManager( currentUserStyleRepository: CurrentUserStyleRepository ): ComplicationSlotsManager = // ... /** * The watch face itself, which includes the renderer for drawing. */ override suspend fun createWatchFace( surfaceHolder: SurfaceHolder, watchState: WatchState, complicationSlotsManager: ComplicationSlotsManager, currentUserStyleRepository: CurrentUserStyleRepository ): WatchFace = // ... }
Đăng ký dịch vụ mặt đồng hồ
Sau khi bạn triển khai dịch vụ mặt đồng hồ, hãy đăng ký phương thức triển khai trong tệp kê khai của ứng dụng dành cho thiết bị đeo. Khi người dùng cài đặt ứng dụng này, hệ thống sẽ sử dụng thông tin về dịch vụ để cung cấp mặt đồng hồ trong ứng dụng đồng hành Wear OS và trong bộ chọn mặt đồng hồ trên thiết bị đeo.
Mẫu sau đây cho biết cách đăng ký triển khai mặt đồng hồ trong phần tử <application>
:
<service android:name=".AnalogWatchFaceService" android:label="@string/analog_name" android:permission="android.permission.BIND_WALLPAPER" > <meta-data android:name="android.service.wallpaper" android:resource="@xml/watch_face" /> <meta-data android:name="com.google.android.wearable.watchface.preview_circular" android:resource="@drawable/preview_analog_circular" /> <intent-filter> <action android:name="android.service.wallpaper.WallpaperService" /> <category android:name= "com.google.android.wearable.watchface.category.WATCH_FACE" /> </intent-filter> </service>
Ứng dụng đồng hành Wear OS by Google và bộ chọn mặt đồng hồ trên thiết bị đeo sử dụng hình ảnh xem trước do mục siêu dữ liệu com.google.android.wearable.watchface.preview_circular
xác định khi trình bày cho người dùng tất cả mặt đồng hồ được cài đặt trên thiết bị. Để nhận đối tượng có thể vẽ này, hãy chạy mặt đồng hồ trên thiết bị Wear OS hoặc trong một phiên bản trình mô phỏng rồi chụp ảnh màn hình. Trên thiết bị Wear có màn hình HDPI, hình ảnh xem trước thường có kích thước 320 x 320 pixel.
Mục siêu dữ liệu android.service.wallpaper
chỉ định tệp tài nguyên watch_face.xml
có chứa phần tử wallpaper
như trong mẫu sau:
<?xml version="1.0" encoding="UTF-8"?> <wallpaper xmlns:android="http://schemas.android.com/apk/res/android" />
Ứng dụng dành cho thiết bị đeo có thể chứa nhiều mặt đồng hồ. Bạn phải thêm mục dịch vụ vào tệp kê khai của ứng dụng dành cho thiết bị đeo đối với từng hoạt động triển khai mặt đồng hồ.
Thông tin có liên quan
Hãy tham khảo các tài nguyên có liên quan sau đây: