Khi người dùng hoạt động trong ngày, kính AI của họ có thể mất kết nối với thiết bị lưu trữ (chẳng hạn như điện thoại của người dùng) hoặc mắt kính của họ có thể tạm thời không dùng được nếu họ tháo mắt kính ra. Để tính đến những loại thay đổi này về trạng thái sẵn có của thiết bị, ứng dụng của bạn có thể sử dụng XR Device Availability API. API này hợp nhất các tín hiệu về trạng thái sẵn có của thiết bị thành các giá trị Lifecycle.State tiêu chuẩn của Android. Sử dụng API này để giúp quản lý việc định tuyến âm thanh, kích hoạt cụm từ kích hoạt và biết thời điểm dự kiến hoạt động đầu vào của người dùng dựa trên thời điểm kính AI có sẵn.
Tìm hiểu các trạng thái vòng đời
Bảng sau đây liệt kê cách các tín hiệu về tình trạng còn hàng của thiết bị liên kết đến các giá trị Lifecycle.State.
Trạng thái vòng đời |
Trạng thái thiết bị |
Mô tả |
|---|---|---|
|
Đã tạo |
Đối tượng vòng đời được tạo nhưng chưa được quan sát. |
|
Không hoạt động |
Dịch vụ đã kết nối nhưng người dùng không đeo thiết bị. |
|
Đang hoạt động |
Người dùng đang đeo thiết bị. |
|
Đã ngắt kết nối |
Thiết bị bị ngắt kết nối hoặc mất kết nối dịch vụ. |
Kiểm tra và theo dõi tình trạng còn hàng của thiết bị
Để kiểm tra và theo dõi trạng thái sẵn có của thiết bị, bạn sẽ sử dụng một ngữ cảnh được chiếu cùng với trạng thái vòng đời để xác định cách ứng dụng của bạn nên xử lý từng trường hợp:
val xrDevice = XrDevice.getCurrentDevice(projectedContext) xrDevice.getLifecycle().currentStateFlow .takeWhile { it != Lifecycle.State.DESTROYED } .collect { state -> when (state) { Lifecycle.State.STARTED -> { /* Device is ACTIVE (worn) */ } Lifecycle.State.CREATED -> { /* Device is INACTIVE (not worn) */ } else -> { /* Handle other states */ } } } }
Các điểm chính về mã
- Kiểm tra kết nối: Trước khi truy cập vào vòng đời của thiết bị, hãy gọi
ProjectedContext.isProjectedDeviceConnectedđể xác minh rằng thiết bị được chiếu đã kết nối với thiết bị lưu trữ. - Lấy
ProjectedContext: Chỉ gọiProjectedContext.createProjectedDeviceContextsau khi xác minh kết nối và đảm bảo bạn truyền ngữ cảnh này vào phiên bảnXrDevice. - Xử lý việc vô hiệu hoá bối cảnh: Một
deviceIdmới sẽ được tạo mỗi khi một thiết bị được chiếu kết nối. Khi trạng thái đạt đếnDESTROYED,ProjectedContexthiện tại sẽ không hợp lệ. Ngừng sử dụng ngay lập tức và chờ kết nối mới. - Tối ưu hoá pin và tài nguyên: Xử lý chức năng của ứng dụng một cách hiệu quả dựa trên trạng thái vòng đời để duy trì tài nguyên hệ thống và giảm mức tiêu thụ pin. Ví dụ: bạn nên giải phóng các tài nguyên dành riêng cho kính, chẳng hạn như luồng dữ liệu camera, khi trạng thái chuyển từ
STARTEDvềCREATED. Trạng tháiCREATEDcho biết thiết bị không còn được đeo nữa, vì vậy, việc dừng các quy trình này là cần thiết để ngăn tình trạng tiêu hao pin không cần thiết và để bảo vệ quyền riêng tư của người dùng.