API Lớp dữ liệu trên thiết bị đeo là một phần của Dịch vụ Google Play, cung cấp một kênh giao tiếp giữa thiết bị đeo (như đồng hồ thông minh) và thiết bị cầm tay được kết nối (thường là điện thoại thông minh). Đây là cách để đồng bộ hoá và chuyển dữ liệu giữa các thiết bị.
Lưu ý: API này chỉ có trên đồng hồ Wear OS và các thiết bị Android được ghép nối. Đối với đồng hồ Wear OS được ghép nối với điện thoại iOS, ứng dụng có thể truy vấn các API khác trên đám mây nếu có kết nối Internet. Để biết thêm thông tin về các API khác này, hãy truy cập vào bài viết Quyền truy cập mạng và đồng bộ hoá trên Wear OS.
Thận trọng: Vì các API lớp dữ liệu được thiết kế để giao tiếp giữa thiết bị cầm tay và thiết bị đeo, nên đây là những API duy nhất mà bạn có thể dùng để thiết lập giao tiếp giữa các thiết bị này. Ví dụ: đừng cố mở ổ cắm cấp thấp để tạo kênh giao tiếp.
Các trường hợp sử dụng phổ biến
Sử dụng API Lớp dữ liệu khi hoạt động tương tác chỉ diễn ra giữa đồng hồ và điện thoại. Ví dụ:
- Điều khiển từ xa: Đồng hồ hoạt động như một thiết bị điều khiển từ xa cho điện thoại (ví dụ: điều khiển trình phát nhạc đang chạy trên điện thoại, trượt bản trình bày, hoạt động như nút chụp ảnh của máy ảnh).
- Khởi chạy ứng dụng trên thiết bị cầm tay: Tính năng nút "Mở trên điện thoại".
- Cầu nối xác thực: Gửi mã thông báo phiên từ điện thoại đến đồng hồ trong quá trình thiết lập ban đầu.
Thay vào đó, nhiều trường hợp phổ biến nên sử dụng cơ sở hạ tầng đám mây hiện có, ví dụ:
- Lưu dữ liệu: Bài tập, ghi chú.
- Tìm nạp nội dung: Tải danh sách các bài tập trước đây, tải nhạc xuống, tìm nạp thông tin thời tiết.
- Đồng bộ hoá trạng thái: Nếu người dùng thay đổi ảnh hồ sơ của họ trên web, đồng hồ sẽ cập nhật bằng đám mây chứ không phải bằng cách truy vấn điện thoại.
Đối với những trường hợp này, hãy sử dụng các điểm cuối và cơ sở hạ tầng hiện có của riêng bạn thay vì API Lớp dữ liệu.
Các lựa chọn để giao tiếp
Dữ liệu được chuyển theo một trong những cách sau:
- Trực tiếp, khi đã có kết nối Bluetooth giữa thiết bị Wear OS và một thiết bị khác.
- Qua mạng có sẵn, chẳng hạn như LTE hoặc Wi-Fi, sử dụng một nút mạng trên máy chủ của Google làm trung gian.
Tất cả ứng dụng Lớp dữ liệu đều có thể trao đổi dữ liệu qua Bluetooth hoặc dùng đám mây, tuỳ thuộc vào loại kết nối có trên thiết bị. Giả sử rằng dữ liệu được truyền bằng Lớp dữ liệu có thể sử dụng máy chủ thuộc sở hữu của Google tại một thời điểm nào đó.
Bluetooth
Khi các thiết bị được kết nối bằng Bluetooth, Lớp dữ liệu sẽ sử dụng loại kết nối này. Dịch vụ Google Play quản lý một kênh mã hoá (bằng phương thức mã hoá Bluetooth tiêu chuẩn) duy nhất giữa các thiết bị.
Đám mây
Dữ liệu sẽ tự động được định tuyến thông qua Google Cloud khi không có Bluetooth. Tất cả dữ liệu được chuyển thông qua Google Cloud đều được mã hoá hai đầu.
Bảo mật thông tin liên lạc
Dịch vụ Google Play thực thi các hạn chế sau đây để cung cấp thông tin liên lạc an toàn hơn giữa ứng dụng được cài đặt trên thiết bị Wear OS và cùng ứng dụng đó được cài đặt trên thiết bị cầm tay ở gần đó:
- Tên gói phải giống nhau trên các thiết bị.
- Chữ ký của gói phải giống nhau trên các thiết bị.
Không có ứng dụng nào khác có quyền truy cập vào dữ liệu bất kể loại kết nối.
Thiết lập
API Lớp dữ liệu trên thiết bị đeo có các phần phụ thuộc sau:
- Phiên bản mới nhất của Dịch vụ Google Play.
- Thiết bị Wear OS hoặc trình mô phỏng Wear OS
Đưa phần phụ thuộc sau đây vào tệp build.gradle của mô-đun Wear:
dependencies {
...
implementation("com.google.android.gms:play-services-wearable:19.0.0")
}
Tạo điều kiện cho quá trình ghép nối ban đầu
Horologist cung cấp một số thư viện trợ giúp trên các API nền tảng. Thư viện này bao gồm một thư viện lớp dữ liệu giúp thiết lập kết nối giữa thiết bị di động và thiết bị Wear OS. Ngoài ra, thư viện này còn cung cấp các API tiện lợi để thực hiện những việc sau:
- Cài đặt ứng dụng trên thiết bị khác.
- Khởi chạy ứng dụng trên thiết bị khác.
- Khởi chạy một hoạt động cụ thể trên thiết bị khác.
- Khởi chạy ứng dụng đồng hành.
Truy cập vào lớp dữ liệu
Để gọi API Lớp dữ liệu, hãy sử dụng lớp Wearable để lấy các thực thể của
nhiều lớp ứng dụng, chẳng hạn như DataClient và MessageClient.
Để biết thêm thông tin, hãy tham khảo mẫu DataLayer.
Sử dụng một ứng dụng tối giản
Để tạo một ứng dụng, hãy xem mã ví dụ sau:
val dataClient = Wearable.getDataClient(this)
val available = try { GoogleApiAvailability.getInstance() .checkApiAvailability(client) .await() true } catch (e: AvailabilityException) { // API is not available in this device. false }
Ngữ cảnh có thể là bất kỳ ngữ cảnh Android hợp lệ nào. Nếu bạn đang sử dụng API trong phạm vi của một Activity, hãy sử dụng phương thức getDataClient() của lớp Wearable. Điều này cho phép một số lượt tương tác nhất định xuất hiện dưới dạng hộp thoại thay vì thông báo, chẳng hạn như khi người dùng được yêu cầu cập nhật phiên bản Dịch vụ Google Play.
Theo mặc định, lệnh gọi lại đến trình nghe được thực hiện trên luồng giao diện người dùng chính của ứng dụng. Để lệnh gọi lại được thực hiện trên một luồng khác, hãy sử dụng đối tượng WearableOptions để
chỉ định Looper tuỳ chỉnh.
Để biết thêm thông tin, hãy xem tài liệu tham khảo WearableOptions.Builder.
Tạo lại các thực thể ứng dụng khi cần
Các ứng dụng Wearable API, chẳng hạn như DataClient và MessageClient, có
chi phí tạo thấp. Vì vậy, thay vì giữ lại các ứng dụng, hãy tạo lại chúng khi bạn cần, sử dụng kiểu phù hợp với ứng dụng của bạn.
Trạng thái của ứng dụng (chẳng hạn như tập hợp trình nghe đã đăng ký) sẽ được chia sẻ trên mọi ứng dụng và được giữ nguyên nếu bạn cập nhật Dịch vụ Google Play trong lúc ứng dụng đang chạy.