Làm việc với ARCore cho Jetpack XR

ARCore cho Jetpack XR cho phép các ứng dụng hoạt động với các khái niệm cơ bản về thực tế tăng cường (AR), sử dụng các nguyên mẫu nhận biết cảnh cấp thấp và tính năng theo dõi chuyển động. Sử dụng ARCore cho Jetpack XR khi xây dựng trải nghiệm AR và bạn cần sử dụng dữ liệu mặt phẳng hoặc nội dung neo vào một vị trí cố định trong không gian.

Tìm hiểu về vòng đời của Session

Bạn phải truy cập vào tất cả đối tượng do ARCore theo dõi cho Jetpack XR thông qua Session. Tương tự như vòng đời của Hoạt động, các đối tượng Session cũng có một vòng đời phải được duy trì theo cách ứng dụng của bạn sử dụng các tính năng của đối tượng Session. Nếu ứng dụng của bạn chứa một hoạt động hỗ trợ XR, hãy cân nhắc xử lý vòng đời của Session bằng cách sử dụng Thành phần nhận biết vòng đời.

Truy cập vào Session

Bạn phải tạo Session khi sử dụng ARCore cho Jetpack XR.

Khi sử dụng Jetpack Compose cho XR, hãy sử dụng LocalSession để truy cập vào phiên được tạo cho bạn.

Tiếp tục phiên

Bạn nên tiếp tục phiên khi ứng dụng của bạn đã sẵn sàng xử lý các thay đổi về trạng thái từ ARCore cho Jetpack XR. Trong nhiều trường hợp, việc này được thực hiện trong lệnh gọi lại onResume() của Hoạt động, nhưng ứng dụng của bạn có thể muốn trì hoãn quá trình xử lý cho đến khi người dùng tương tác.

Đoạn mã sau đây cho thấy ví dụ về cách tiếp tục một phiên.

when (val result = session.resume()) {
    is SessionResumeSuccess -> {
        // Session has been created successfully.
        // Attach any successful handlers here.
    }

    is SessionResumePermissionsNotGranted -> {
        // Request permissions in `result.permissions`.
    }
}

Hãy xem SessionResumeResult để biết lý do Session không thể tiếp tục.

Tạm dừng một phiên

Khi hoạt động của bạn chuyển sang chế độ nền, hãy tạm dừng Session bằng cách sử dụng [Session.pause()][Session.pause]. Thao tác tạm dừng phiên sẽ tạm thời dừng theo dõi cho đến khi phiên tiếp tục, duy trì trạng thái của hệ thống nhận thức.

Huỷ phiên

Để loại bỏ vĩnh viễn Session, hãy sử dụng [Session.destroy()][Session.destroy]. Thao tác này sẽ giải phóng các tài nguyên đang được phiên sử dụng và huỷ bỏ tất cả trạng thái phiên.

Xem thêm