ARCore untuk Jetpack XR

Menghadirkan konten digital ke dunia nyata dengan kemampuan persepsi.
Update Terbaru Rilis Stabil Kandidat Rilis Rilis Beta Rilis Alfa
30 Juli 2025 - - - 1.0.0-alpha05

Mendeklarasikan dependensi

Untuk menambahkan dependensi pada ARCore untuk Jetpack XR, Anda harus menambahkan repositori Maven Google ke project Anda. Baca repositori Maven Google untuk mengetahui informasi selengkapnya.

Tambahkan dependensi untuk artefak yang diperlukan dalam file build.gradle bagi aplikasi atau modul Anda:

Groovy

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

Kotlin

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

Untuk informasi dependensi selengkapnya, lihat Menambahkan dependensi build.

Masukan

Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau mempunyai masukan untuk meningkatkan kualitas library ini. Harap periksa masalah yang sudah diketahui dalam library ini sebelum membuat laporan baru. Anda dapat memberikan suara untuk masalah yang sudah diketahui dengan mengklik tombol bintang.

Laporkan masalah baru

Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.

Versi 1.0

Versi 1.0.0-alpha05

30 Juli 2025

androidx.xr.arcore:arcore:1.0.0-alpha05, androidx.xr.arcore:arcore-guava:1.0.0-alpha05, dan androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha05 dirilis. Versi 1.0.0-alpha05 berisi commit ini.

Fitur Baru

  • Tambahkan getPrimaryHandSide agar developer bisa mendapatkan info sisi tangan (I270bd)
  • Menambahkan API ketersediaan VPS pemeriksaan geospasial (I58573)
  • Menambahkan ARCore API untuk checkVpsAvailability (Idbded)
  • Fungsi ekstensi stateFlowable ditambahkan ke :xr:arcore:arcore-rxjava3 untuk digunakan oleh developer Java. (I083aa, b/427247794)

Perubahan API

  • Nilai Config *Mode telah diganti namanya untuk mencerminkan perilakunya. (I6d247, b/414648065)
  • Artefak ARCore utama (xr:arcore:arcore) hanya akan berisi API asinkron gaya Kotlin. Developer Java dapat mengandalkan library xr:arcore:arcore-rxjava3 untuk mengakses API yang kompatibel. (Ia525e, b/422794329)
  • Artefak ARCore utama (xr:scenecore:scenecore) hanya akan berisi API asinkron gaya Kotlin. Developer Java dapat mengandalkan library xr:arcore:arcore-guava untuk mengakses API yang kompatibel. (Iffcb4, b/422773524)
  • Anchor.persistAsync() ditambahkan ke AnchorGuava untuk digunakan oleh developer Java. (I4af1c, b/425984631)
  • Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface) ditambahkan ke EarthGuava untuk digunakan oleh developer Java. (I66357, b/425992992)
  • Developer Java akan menggunakan fungsi ekstensi untuk GltfModel.createAsync di GltfModel.kt. Fungsi asinkron di GltfModel akan dihapus. (I0af60)
  • Library ini kini menggunakan anotasi nullability JSpecify, yang merupakan penggunaan jenis. Developer Kotlin harus menggunakan argumen compiler berikut untuk menerapkan penggunaan yang benar: -Xjspecify-annotations=strict (ini adalah setelan default mulai dari compiler Kotlin versi 2.1.0) (Ia8420, b/326456246)
  • Fungsi ekstensi subscribeAsFlowable ditambahkan ke :xr:arcore:arcore-rxjava3 untuk digunakan oleh developer Java. (Id3e49, b/427277298)

Versi 1.0.0-alpha04

7 Mei 2025

androidx.xr.arcore:arcore:1.0.0-alpha04 dirilis. Versi 1.0.0-alpha04 berisi commit ini.

Perubahan API

  • Project yang dirilis dengan Kotlin 2.0 memerlukan KGP 2.0.0 atau yang lebih baru untuk digunakan. (Idb6b5)
  • TrackingState dan HandJointType telah dipindahkan dari ARCore ke Runtime.
  • Hand.State.isActive (boolean) telah diganti menjadi Hand.State.trackingState (androidx.xr.runtime.TrackingState).
  • Anchor.load menampilkan Anchor.AnchorLoadInvalidUuid jika UUID tidak valid.

Versi 1.0.0-alpha03

26 Februari 2025

androidx.xr.arcore:arcore:1.0.0-alpha03 dirilis tanpa perubahan penting sejak versi alfa terakhir. Versi 1.0.0-alpha03 berisi commit ini.

Versi 1.0.0-alpha02

12 Februari 2025

androidx.xr.arcore:arcore:1.0.0-alpha02 dirilis. Versi 1.0.0-alpha02 berisi commit ini.

Fitur Baru

  • Menambahkan dukungan pelacakan tangan. Gunakan Hand.left dan Hand.right untuk mengakses informasi pelacakan.
  • Semua API yang membuat anchor (Anchor.create, Anchor.load, Plane.createAnchor) kini menampilkan AnchorCreateResult dan mengimplementasikan AnchorCreateResourcesExhausted dengan benar.

Perbaikan bug

  • Anchor.detach tidak lagi menyebabkan error fatal karena kondisi persaingan dengan thread update Sesi.
  • Anchor.create lebih stabil saat berjalan di emulator

Versi 1.0.0-alpha01

12 Desember 2024

androidx.xr.arcore:arcore-* 1.0.0-alpha01 dirilis.

Fitur rilis awal

Terinspirasi oleh library ARCore yang ada, library ARCore untuk Jetpack XR menyediakan kemampuan untuk memadukan konten digital dengan dunia nyata. Library ini mencakup pelacakan gerakan, anchor persisten, pengujian hit, dan identifikasi bidang dengan pelabelan semantik (misalnya, lantai, dinding, dan permukaan meja). Lihat panduan developer untuk mempelajari lebih lanjut cara menggunakan ARCore untuk Jetpack XR.

  • Session: ARCore untuk Jetpack XR menggunakan Jetpack XR Runtime di balik layar untuk mendukung fungsinya. Anda akan menggunakan Sesi untuk berinteraksi dengan sebagian besar ARCore untuk Jetpack XR API, jadi lihat dokumentasinya.

  • Plane: Menggunakan bidang untuk memahami dunia di sekitar Anda. Setiap bidang memiliki Label yang mendeskripsikannya secara semantik. Anda dapat menggunakan subscribe untuk mendapatkan notifikasi tentang pesawat terbaru yang terdeteksi atau state untuk mendapatkan notifikasi tentang perubahan pada pesawat tertentu.

  • Anchor: Link antara objek virtual dan lokasi dunia nyata. Anchor dapat dilampirkan ke lokasi tertentu di ruang (menggunakan create) atau Trackable (menggunakan createAnchor).

    • Anchor dapat digunakan kembali di seluruh sesi. Anda dapat menggunakan persist untuk menyimpannya, getPersistedAnchorUuids untuk menghitungnya, dan load untuk mengambilnya. Pastikan Anda unpersist perangkat tersebut setelah tidak lagi digunakan.

    • Anchor dapat beroperasi secara interoperabel antara ARCore untuk Jetpack XR dan Jetpack SceneCore. Anda dapat membuat AnchorEntity menggunakan anchor atau, jika Anda memiliki AnchorEntity yang sudah ada, Anda dapat menggunakan getAnchor untuk mengambil anchor pendukungnya.

    • Menawarkan interaksi pengguna yang alami menggunakan hitTest. hitTest menggunakan Ray untuk menentukan konten mana yang berpotongan dan membuat Anchor dari lokasi tersebut. Pertimbangkan untuk melakukan hitTest dari InputEvent.

Masalah Umum

  • Mungkin ada penundaan antara pemanggilan unpersist dan UUID-nya dihapus dari hasil yang ditampilkan oleh getPersistedAnchorUuids.

  • create tidak akan memvalidasi bahwa sistem memiliki resource yang cukup untuk menampilkan anchor baru. Membuat terlalu banyak penanda dapat menyebabkan aplikasi error.

  • Mempertahankan Anchor yang sebelumnya dipertahankan dan tidak dipertahankan saat ini tidak didukung.

  • Penggunaan di emulator didukung, tetapi perilakunya mungkin tidak stabil seperti saat dijalankan di perangkat yang sebenarnya. Khususnya, panggilan ke create dapat gagal dengan error kode native dan segera menghentikan aktivitas.

  • Dalam situasi tertentu, RuntimeException mungkin salah dilempar saat memanggil persist dengan pesan “Anchor was not persisted”. Dalam situasi tersebut, fungsi akan tetap berhasil dan penanda akan tetap dipertahankan. Sebaiknya bungkus panggilan ke persist dengan blok try sebagai solusinya.