ARCore cho Jetpack XR

Đưa nội dung kỹ thuật số vào thế giới thực nhờ các tính năng nhận biết.
Bản cập nhật mới nhất Bản phát hành ổn định Bản phát hành dùng thử Bản phát hành beta Bản phát hành alpha
Ngày 30 tháng 7 năm 2025 - - - 1.0.0-alpha05

Khai báo phần phụ thuộc

Để thêm một phần phụ thuộc trên ARCore cho Jetpack XR, bạn phải thêm kho lưu trữ Google Maven vào dự án. Đọc nội dung Kho lưu trữ Maven của Google để biết thêm thông tin.

Thêm các phần phụ thuộc cho cấu phần phần mềm bạn cần trong tệp build.gradle cho ứng dụng hoặc mô-đun:

Groovy

dependencies {
    implementation "androidx.xr.arcore:arcore:1.0.0-alpha05"
}

Kotlin

dependencies {
    implementation("androidx.xr.arcore:arcore:1.0.0-alpha05")
}

Để biết thêm thông tin về các phần phụ thuộc, hãy xem bài viết Thêm phần phụ thuộc vào bản dựng.

Ý kiến phản hồi

Ý kiến phản hồi của bạn có thể giúp chúng tôi cải thiện Jetpack. Hãy cho chúng tôi biết nếu bạn phát hiện lỗi mới hoặc có ý tưởng cải thiện thư viện này. Vui lòng xem các lỗi hiện có trong thư viện này trước khi báo một lỗi mới. Bạn có thể thêm lượt bình chọn cho lỗi hiện có bằng cách nhấp vào nút dấu sao.

Báo lỗi mới

Xem tài liệu về Công cụ theo dõi lỗi để biết thêm thông tin.

Phiên bản 1.0

Phiên bản 1.0.0-alpha05

Ngày 30 tháng 7 năm 2025

Phát hành androidx.xr.arcore:arcore:1.0.0-alpha05, androidx.xr.arcore:arcore-guava:1.0.0-alpha05androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha05. Phiên bản 1.0.0-alpha05 bao gồm các thay đổi sau.

Tính năng mới

  • Thêm getPrimaryHandSide để nhà phát triển có thể nhận được thông tin về phía tay (I270bd)
  • Thêm API kiểm tra không gian địa lý về tình trạng cung cấp VPS (I58573)
  • Thêm ARCore API cho checkVpsAvailability (Idbded)
  • Các hàm mở rộng stateFlowable được thêm vào :xr:arcore:arcore-rxjava3 để nhà phát triển Java sử dụng. (I083aa, b/427247794)

Thay đổi về API

  • Các giá trị *Mode trong cấu hình đã được đổi tên để phản ánh hành vi của các giá trị đó. (I6d247, b/414648065)
  • Cấu phần phần mềm ARCore chính (xr:arcore:arcore) sẽ chỉ chứa các API không đồng bộ theo kiểu Kotlin. Nhà phát triển Java có thể dựa vào thư viện xr:arcore:arcore-rxjava3 để truy cập vào các API tương thích. (Ia525e, b/422794329)
  • Cấu phần phần mềm ARCore chính (xr:scenecore:scenecore) sẽ chỉ chứa các API không đồng bộ theo kiểu Kotlin. Nhà phát triển Java có thể dựa vào thư viện xr:arcore:arcore-guava để truy cập vào các API tương thích. (Iffcb4, b/422773524)
  • Anchor.persistAsync() được thêm vào AnchorGuava để nhà phát triển Java sử dụng. (I4af1c, b/425984631)
  • Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface) được thêm vào EarthGuava để nhà phát triển Java sử dụng. (I66357, b/425992992)
  • Nhà phát triển Java sẽ dùng các hàm mở rộng cho GltfModel.createAsync trong GltfModel.kt. Các hàm không đồng bộ trong GltfModel sẽ bị xoá. (I0af60)
  • Thư viện này hiện sử dụng chú giải về giá trị rỗng JSpecify, là loại sử dụng. Nhà phát triển Kotlin nên sử dụng đối số trình biên dịch sau đây để thực thi cách sử dụng chính xác: -Xjspecify-annotations=strict (đây là trạng thái ban đầu mặc định bắt đầu từ phiên bản 2.1.0 của trình biên dịch Kotlin) (Ia8420, b/326456246)
  • Các hàm mở rộng subscribeAsFlowable được thêm vào :xr:arcore:arcore-rxjava3 để nhà phát triển Java sử dụng. (Id3e49, b/427277298)

Phiên bản 1.0.0-alpha04

Ngày 7 tháng 5 năm 2025

Phát hành androidx.xr.arcore:arcore:1.0.0-alpha04. Phiên bản 1.0.0-alpha04 bao gồm các thay đổi sau.

Thay đổi về API

  • Các dự án được phát hành bằng Kotlin 2.0 yêu cầu sử dụng KGP 2.0.0 trở lên. (Idb6b5)
  • TrackingStateHandJointType đã được di chuyển từ ARCore sang Thời gian chạy.
  • Hand.State.isActive (boolean) đã được thay đổi thành Hand.State.trackingState (androidx.xr.runtime.TrackingState).
  • Anchor.load trả về Anchor.AnchorLoadInvalidUuid nếu UUID không hợp lệ.

Phiên bản 1.0.0-alpha03

Ngày 26 tháng 2 năm 2025

androidx.xr.arcore:arcore:1.0.0-alpha03 được phát hành mà không có thay đổi đáng kể nào kể từ bản phát hành alpha gần đây nhất. Phiên bản 1.0.0-alpha03 bao gồm các thay đổi sau.

Phiên bản 1.0.0-alpha02

Ngày 12 tháng 2 năm 2025

Phát hành androidx.xr.arcore:arcore:1.0.0-alpha02. Phiên bản 1.0.0-alpha02 bao gồm các thay đổi sau.

Tính năng mới

  • Thêm tính năng hỗ trợ theo dõi cử chỉ tay. Sử dụng Hand.leftHand.right để xem thông tin theo dõi.
  • Các API tạo một neo (Anchor.create, Anchor.load, Plane.createAnchor) hiện đều trả về AnchorCreateResult và triển khai đúng cách AnchorCreateResourcesExhausted.

Sửa lỗi

  • Anchor.detach không còn gây ra lỗi nghiêm trọng do điều kiện xung đột với luồng cập nhật Phiên.
  • Anchor.create ổn định hơn khi chạy trên trình mô phỏng

Phiên bản 1.0.0-alpha01

Ngày 12 tháng 12 năm 2024

Phát hành androidx.xr.arcore:arcore-* 1.0.0-alpha01.

Các tính năng của bản phát hành ban đầu

Lấy cảm hứng từ thư viện ARCore hiện có, thư viện ARCore cho Jetpack XR cung cấp các chức năng để kết hợp nội dung kỹ thuật số với thế giới thực. Thư viện này bao gồm tính năng theo dõi chuyển động, các điểm neo cố định, kiểm tra lượt truy cập và nhận dạng mặt phẳng bằng tính năng gắn nhãn ngữ nghĩa (ví dụ: sàn nhà, tường và mặt bàn). Xem hướng dẫn cho nhà phát triển để tìm hiểu thêm về cách sử dụng ARCore cho Jetpack XR.

  • Session: ARCore cho Jetpack XR sử dụng Jetpack XR Runtime để hỗ trợ chức năng của mình. Bạn sẽ dùng một phiên để tương tác với hầu hết các API ARCore cho Jetpack XR, vì vậy, vui lòng xem tài liệu của phiên này.

  • Plane: Sử dụng mặt phẳng để hiểu rõ thế giới xung quanh bạn. Mỗi mặt phẳng đều có một Label mô tả mặt phẳng đó theo ngữ nghĩa. Bạn có thể sử dụng subscribe để nhận thông báo về những máy bay mới nhất được phát hiện hoặc state để nhận thông báo về những thay đổi đối với một máy bay cụ thể.

  • Anchor: Mối liên kết giữa một đối tượng ảo và một vị trí trong thế giới thực. Bạn có thể đính các neo vào một vị trí cụ thể trong không gian (bằng cách sử dụng create) hoặc một Trackable (bằng cách sử dụng createAnchor).

    • Bạn có thể sử dụng lại các điểm neo trong các phiên. Bạn có thể dùng persist để lưu trữ, getPersistedAnchorUuids để liệt kê và load để truy xuất các đối tượng này. Đảm bảo rằng bạn unpersist chúng khi không còn sử dụng nữa.

    • Các neo có thể tương tác giữa ARCore cho Jetpack XR và Jetpack SceneCore. Bạn có thể tạo một AnchorEntity bằng một neo hoặc nếu đã có AnchorEntity, bạn có thể dùng getAnchor để truy xuất neo hỗ trợ của neo đó.

    • Cung cấp các hoạt động tương tác tự nhiên của người dùng bằng cách sử dụng hitTest. hitTest sử dụng Ray để xác định nội dung mà nó giao nhau và tạo một Anchor từ vị trí đó. Cân nhắc việc tiến hành hitTest từ một InputEvent.

Lỗi đã biết

  • Có thể sẽ mất một khoảng thời gian kể từ khi bạn gọi unpersist cho đến khi UUID của yêu cầu đó bị xoá khỏi kết quả mà getPersistedAnchorUuids trả về.

  • create sẽ không xác thực rằng hệ thống có đủ tài nguyên để trả về các điểm neo mới. Việc tạo quá nhiều điểm neo có thể dẫn đến sự cố.

  • Hiện không hỗ trợ việc duy trì một Anchor đã được duy trì và không được duy trì trước đó.

  • Bạn có thể sử dụng trong trình mô phỏng, nhưng hành vi có thể không ổn định như khi chạy trên một thiết bị thực. Cụ thể, các lệnh gọi đến create có thể không thành công do lỗi mã gốc và ngay lập tức chấm dứt hoạt động.

  • Trong một số trường hợp, RuntimeException có thể bị lỗi khi gọi persist bằng thông báo "Anchor was not persisted" (Không duy trì được điểm neo). Trong những trường hợp đó, hàm vẫn sẽ thành công và điểm neo sẽ được duy trì. Bạn nên bao bọc lệnh gọi đến persist bằng một khối try để khắc phục vấn đề này.