ARCore w Jetpack XR
| Najnowsza aktualizacja | Wersja stabilna | Wersja kandydująca do publikacji | Wersja beta | Wersja Alfa | 
|---|---|---|---|---|
| 22 października 2025 r. | - | - | - | 1.0.0-alpha07 | 
Deklarowanie zależności
Aby dodać zależność od ARCore dla Jetpack XR, musisz dodać do projektu repozytorium Google Maven. Więcej informacji znajdziesz w repozytorium Maven Google.
Dodaj zależności dotyczące potrzebnych artefaktów w pliku build.gradle aplikacji lub modułu:
Groovy
dependencies { implementation "androidx.xr.arcore:arcore:1.0.0-alpha07" // Optional dependencies for asynchronous conversions implementation "androidx.xr.arcore:arcore-guava:1.0.0-alpha07" implementation "androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha07" }
Kotlin
dependencies { implementation("androidx.xr.arcore:arcore:1.0.0-alpha07") // Optional dependencies for asynchronous conversions implementation("androidx.xr.arcore:arcore-guava:1.0.0-alpha07") implementation("androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha07") }
Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.
Opinia
Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli odkryjesz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nowy problem, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk gwiazdki.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Wersja 1.0
Wersja 1.0.0-alpha07
22 października 2025 r.
Publikacja androidx.xr.arcore:arcore-*:1.0.0-alpha07 Wersja 1.0.0-alpha07 zawiera te zmiany.
Poprawki błędów
- :xr:arcore:arcore-openxrdodano jako zależność implementacji do- :xr:arcore:arcore(I47315, b/446999229)
Wersja 1.0.0-alpha06
24 września 2025 r.
Publikacja androidx.xr.arcore:arcore-*:1.0.0-alpha06 Wersja 1.0.0-alpha06 zawiera te zmiany.
Zmiany w interfejsie API
- Obsługa testowania ARCorezostała przeniesiona do modułuxr:arcore:arcore-testing. (I25469)
- Dodanie ArDeviceiRenderViewpoint, aby umożliwić aplikacjom pobieranie pozycji urządzenia i konfiguracji wyświetlania na potrzeby renderowania. (Ib7e3f)
- Zmień nazwy wyliczeń HandJointType, dodając prefiksHAND_JOINT_TYPE_. (I3f7cd)
- Urządzenie HandJointTypezostało przeniesione zxr:runtime:runtimedoxr:arcore:arcore. (Iadb9c, b/409058039)
- Hand.Stateudostępnia teraz- java.nio.FloatBufferze wspólnymi pozami w formacie, który umożliwia łatwy dostęp do aplikacji zorientowanych na wydajność. (I55e27)
Wersja 1.0.0-alpha05
30 lipca 2025 r.
androidx.xr.arcore:arcore:1.0.0-alpha05, androidx.xr.arcore:arcore-guava:1.0.0-alpha05 i androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha05 są zwalniane. Wersja 1.0.0-alpha05 zawiera te zmiany.
Nowe funkcje
- Dodaj getPrimaryHandSide, aby deweloper mógł uzyskać informacje o stronie (I270bd).
- Dodano interfejs API sprawdzania dostępności VPS w przestrzeni geograficznej (I58573)
- Dodawanie interfejsu ARCore API dla checkVpsAvailability(Idbded)
- Funkcje rozszerzeń stateFlowabledodane do:xr:arcore:arcore-rxjava3do użytku przez deweloperów Java. (I083aa, b/427247794)
Zmiany w interfejsie API
- Nazwy wartości konfiguracji *Modezostały zmienione, aby odzwierciedlały ich działanie. (I6d247, b/414648065)
- Główny artefakt ARCore (xr:arcore:arcore) będzie zawierać tylko asynchroniczne interfejsy API w stylu Kotlin. Programiści Java mogą korzystać z biblioteki xr:arcore:arcore-rxjava3, aby uzyskiwać dostęp do zgodnych interfejsów API. (Ia525e, b/422794329)
- Główny artefakt ARCore (xr:scenecore:scenecore) będzie zawierać tylko asynchroniczne interfejsy API w stylu Kotlin. Programiści Java mogą korzystać z bibliotekixr:arcore:arcore-guava, aby uzyskiwać dostęp do zgodnych interfejsów API. (Iffcb4, b/422773524)
- Anchor.persistAsync()dodano do- AnchorGuavado użytku przez deweloperów Java. (I4af1c, b/425984631)
- Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface)dodano do- EarthGuavado użytku przez deweloperów Java. (I66357, b/425992992)
- Deweloperzy Javy będą używać funkcji rozszerzeń dla GltfModel.createAsyncwGltfModel.kt. Funkcje asynchroniczne wGltfModelzostaną usunięte. (I0af60)
- Ta biblioteka korzysta teraz z adnotacji o wartości null JSpecify, które są używane w typie. Deweloperzy Kotlin powinni używać tego argumentu kompilatora, aby wymusić prawidłowe użycie: -Xjspecify-annotations=strict(jest to domyślne ustawienie od wersji 2.1.0 kompilatora Kotlin) (Ia8420, b/326456246)
- Funkcje rozszerzeń subscribeAsFlowabledodane do:xr:arcore:arcore-rxjava3do użytku przez deweloperów Java. (Id3e49, b/427277298)
Wersja 1.0.0-alpha04
7 maja 2025 r.
Publikacja androidx.xr.arcore:arcore:1.0.0-alpha04 Wersja 1.0.0-alpha04 zawiera te zmiany.
Zmiany w interfejsie API
- Projekty wydane w Kotlinie 2.0 wymagają użycia KGP w wersji 2.0.0 lub nowszej. (Idb6b5)
- TrackingStatei- HandJointTypezostały przeniesione z ARCore do środowiska wykonawczego.
- Wartość Hand.State.isActive (boolean)została zmieniona naHand.State.trackingState (androidx.xr.runtime.TrackingState).
- Anchor.loadzwraca- Anchor.AnchorLoadInvalidUuid, jeśli identyfikator UUID jest nieprawidłowy.
Wersja 1.0.0-alpha03
26 lutego 2025 r.
androidx.xr.arcore:arcore:1.0.0-alpha03 nie zawiera żadnych istotnych zmian w porównaniu z ostatnią wersją alfa. Wersja 1.0.0-alpha03 zawiera te zmiany.
Wersja 1.0.0-alpha02
12 lutego 2025 r.
Publikacja androidx.xr.arcore:arcore:1.0.0-alpha02 Wersja 1.0.0-alpha02 zawiera te zmiany.
Nowe funkcje
- Dodano obsługę śledzenia rąk. Aby uzyskać dostęp do informacji o śledzeniu, użyj Hand.leftiHand.right.
- Interfejsy API, które generują kotwicę (Anchor.create,Anchor.load,Plane.createAnchor), zwracają terazAnchorCreateResulti prawidłowo implementująAnchorCreateResourcesExhausted.
Poprawki błędów
- Anchor.detachnie powoduje już błędu krytycznego z powodu wyścigu z wątkiem aktualizacji sesji.
- Anchor.createjest bardziej stabilny podczas działania na emulatorze.
Wersja 1.0.0-alpha01
12 grudnia 2024 r.
Publikacja androidx.xr.arcore:arcore-* 1.0.0-alpha01
Funkcje pierwszej wersji
Biblioteka ARCore for Jetpack XR, inspirowana istniejącą biblioteką ARCore, umożliwia łączenie treści cyfrowych ze światem rzeczywistym. Ta biblioteka obejmuje śledzenie ruchu, trwałe punkty zakotwiczenia, testowanie trafień i identyfikację płaszczyzn z etykietowaniem semantycznym (np. podłoga, ściany i blaty). Więcej informacji o korzystaniu z ARCore w Jetpacku XR znajdziesz w przewodniku dla programistów.
- Session: ARCore w Jetpacku XR korzysta z środowiska wykonawczego Jetpacka XR, aby zapewnić działanie swoich funkcji. Do korzystania z większości interfejsów ARCore for Jetpack XR API będziesz używać sesji, więc zapoznaj się z jej dokumentacją.
- Plane: korzystaj z płaszczyzn, aby lepiej poznawać otaczający Cię świat. Każdy samolot ma- Label, który opisuje go semantycznie. Możesz użyć- subscribe, aby otrzymywać powiadomienia o najnowszych wykrytych samolotach, lub- state, aby otrzymywać powiadomienia o zmianach dotyczących konkretnego samolotu.
- Anchor: połączenie między obiektem wirtualnym a lokalizacją w rzeczywistym świecie. Kotwice można przyczepić do określonej lokalizacji w przestrzeni (za pomocą- create) lub do- Trackable(za pomocą- createAnchor).- Kotwice można wykorzystywać wielokrotnie w ramach różnych sesji. Możesz ich używać do przechowywania - persist, wyliczania- getPersistedAnchorUuidsi pobierania- load. Pamiętaj, aby- unpersistje, gdy nie będą już używane.
- Punkty zakotwiczenia są interoperacyjne między ARCore dla Jetpack XR i Jetpack SceneCore. Możesz utworzyć - AnchorEntityza pomocą kotwicy lub, jeśli masz już AnchorEntity, możesz użyć- getAnchor, aby pobrać kotwicę pomocniczą.
- Umożliwiaj naturalne interakcje użytkowników za pomocą - hitTest. Test trafienia używa- Ray, aby określić, które treści przecina, i na podstawie tej lokalizacji tworzy- Anchor. Rozważ przeprowadzenie testu hitTest z poziomu- InputEvent.
 
Znane problemy
- Od wywołania funkcji - unpersistdo usunięcia identyfikatora UUID z wyników zwracanych przez funkcję- getPersistedAnchorUuidsmoże minąć trochę czasu.
- createnie sprawdza, czy system ma wystarczającą ilość zasobów, aby zwrócić nowe punkty. Utworzenie zbyt dużej liczby punktów może spowodować awarię.
- Zapisywanie kotwicy, która została wcześniej zapisana i cofnięta, nie jest obecnie obsługiwane. 
- Korzystanie z emulatora jest obsługiwane, ale działanie może nie być tak stabilne jak na rzeczywistym urządzeniu. W szczególności wywołania funkcji - createmogą kończyć się niepowodzeniem z powodu błędu kodu natywnego i natychmiast przerywać działanie.
- W niektórych przypadkach podczas wywoływania funkcji - persistmoże zostać nieprawidłowo zgłoszony błąd- RuntimeExceptionz komunikatem „Anchor was not persisted” (Kotwica nie została zapisana). W takich przypadkach funkcja nadal będzie działać, a kotwica zostanie zapisana. Jako obejście zalecamy umieszczenie wywołania funkcji- persistw bloku- try.
