ARCore w Jetpack XR
| Najnowsza aktualizacja | Wersja stabilna | Wersja kandydująca do publikacji | Wersja beta | Wersja alfa |
|---|---|---|---|---|
| 7 października 2026 r. | - | 1.0.0-rc02 | - | - |
Deklarowanie zależności
Aby dodać zależność od ARCore dla Jetpack XR, musisz dodać do projektu repozytorium Maven Google. 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:
Odlotowe
dependencies { implementation "androidx.xr.arcore:arcore:1.0.0-rc02" }
Kotlin
dependencies { implementation("androidx.xr.arcore:arcore:1.0.0-rc02") }
Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.
Prześlij opinię
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 nową kartę, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz oddać głos na istniejący problem, klikając przycisk gwiazdki.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Wersja 1.0
Wersja 1.0.0-rc02
7 października 2026 r.
Publikacja androidx.xr.arcore:arcore-*:1.0.0-rc02 Wersja 1.0.0-rc02 zawiera te zmiany.
Poprawki błędów
- Rozwiązaliśmy problem, który powodował, że
OpenXrRuntimenie mogło skonfigurować sesji, gdy śledzenie obrazów rozszerzonych było niedostępne. (I8b9759) - Rozwiązaliśmy kilka problemów, w tym: ulepszyliśmy zarządzanie pamięcią w
XrInstanceManagerza pomocąapplicationContext, rozwiązaliśmy potencjalne problemy związane z cyklem życia, upraszczając mechanizmy buforowaniaSessioniScene, oraz ulepszyliśmyReferenceCleaner, aby zapewnić bezpieczne dla wątków rejestracje czyszczenia i jawne usuwanie. (Id0b76c)
Wersja 1.0.0-rc01
9 września 2026 r.
Publikacja androidx.xr.arcore:arcore-*:1.0.0-rc01 Wersja 1.0.0-rc01 zawiera te zmiany.
Wersja 1.0.0-beta02
12 sierpnia 2026 r.
Publikacja androidx.xr.arcore:arcore-*:1.0.0-beta02 Wersja 1.0.0-beta02 zawiera te zmiany.
Poprawki błędów
- Rozwiązanie problemu z jednoczesnością w
OpenXRtrwałości kotwicy. (I15c8b) - Więcej zajęć z zastosowaniem kontenera
toString()na potrzeby debugowania. (I587e8)
Wersja 1.0.0-beta01
15 lipca 2026 r.
Publikacja androidx.xr.arcore:arcore-*:1.0.0-beta01 Wersja 1.0.0-beta01 zawiera te zmiany.
Zmiany w interfejsie API
- Zaktualizowano modyfikator zmiany rozmiaru, aby używać
ResizePolicyzamiast 2 modyfikatorów (I7fb0f, b/496257436, b/519672992) - Dodano ruchome przeciążenie z parametrem
movePolicyi wycofano parametrytransformingMovableimovable(Ic88c1, b/481781189) - Usunięto
TrackingState.TRACKING_DEGRADED z publicznego interfejsu API i zamiast tego mapujemy stany obniżonej wydajności środowiska wykonawczego na PAUSED. ZaktualizujTrackingState, aby używać wyliczeń zamiast wartości całkowitych w przypadku konwersji ciągów znaków i konwersji w czasie działania. (I3eb5b, b/524326338) - Zmieniliśmy funkcję Converted Session.create na funkcję zawieszającą. (I5d27f)
- Wycofano
ProjectedPermissionsResultContract(I141d5, b/515699436) - Zmieniono nazwę
AnchorEntitynaAnchorSpace(Ifa95e, b/513619219)
Wersja 1.0.0-alpha15
17 czerwca 2026 r.
Publikacja androidx.xr.arcore:arcore-*:1.0.0-alpha15 Wersja 1.0.0-alpha15 zawiera te zmiany.
Zmiany w interfejsie API
- Pole „
HitResult.createAnchor” zostało usunięte. Deweloperzy mogą utworzyć kotwicę reprezentującąHitResult, jeśli śledzony element wyniku jestAnchorable, podając pozycję trafienia do funkcjicreateAnchorobiektuAnchorable. (Ia851e) - Pole „
AnchorUnsupportedObject” zostało usunięte. Nie jest już zgłaszany przez środowisko wykonawcze JXR ARCore. (Ia851e) androidx.xr.arcore.Anchoriandroidx.xr.arcore.ArDeviceteraz implementująandroidx.xr.arcore.Trackable. (I57b65)- Pola
Depth.left,Depth.rightiDepth.mononie mogą już mieć wartości null (I1fc5e) Face.getUserFacenie może już mieć wartości null (I0eac1)- Pola
RenderViewpoint.left,RenderViewpoint.rightiRenderViewpoint.mononie mogą już mieć wartości null (Icf7fa). Hand.leftiHand.rightnie mogą mieć wartości null (Icef37).- Dodano
QrCodeAPI (Ia0bbe)
Wersja 1.0.0-alpha14
19 maja 2026 r.
Publikacja androidx.xr.arcore:arcore-*:1.0.0-alpha14 Wersja 1.0.0-alpha14 zawiera te zmiany.
Zmiany w interfejsie API
- Wyłączamy
GeospatialMode.VPS_AND_GPSna rzeczGeospatialMode.SPATIALi wprowadzamy nowy tryb śledzenia o niższym zużyciu energii,GeospatialMode.INERTIAL, który korzysta tylko z IMU i GPS-a. (I1e6cd) - Niestandardowe klasy wyjątków kotwic:
AnchorInvalidUuidException,AnchorNotAuthorizedException,AnchorUnsupportedLocationException,AnchorRuntimeFailureExceptioniAnchorUnsupportedObjectExceptionsą teraz instancjamiRuntimeException, które nie są przeznaczone do sprawdzania. (I9356e) - Dodano interfejs
ArCoreTestRuleAPI, w tymTestArDevice,TestAugmentableObject,TestDepthMap,TestEye,TestFace,TestGeospatial,TestHand,TestPlane,TestRenderViewpointiTestTrackable(I0ad3c) - Usuwa
AnchorLoadInvalidUuid,AnchorCreateUnsupportedObject,AnchorCreateUnsupportedLocationiAnchorCreateNotAuthorized. Wszystkie te błędy są teraz wyjątkami w czasie działania. UsuwaAnchorCreateIllegalState. W większości przypadków zastąpiono go wartościąAnchorCreateTrackingUnavailable. Dodaje klasęAnchorExceptioni klasy pochodneAnchorInvalidUuidException,AnchorNotAuthorizedException,AnchorUnsupportedLocationException,AnchorRuntimeFailureExceptioniAnchorUnsupportedObjectException. (I4c4dd)
Wkład zewnętrzny
- Dodano interfejs API
AugmentedImagedo śledzenia znaczników niestandardowych (I0cf09)
Wersja 1.0.0-alpha13
6 maja 2026 r.
Publikacja androidx.xr.arcore:arcore-*:1.0.0-alpha13 Wersja 1.0.0-alpha13 zawiera te zmiany.
Zmiany w interfejsie API
TrackingStateiVpsAvailabilityResultzostały przeniesione doandroidx.xr.arcore package, a typy wandroidx.xr.runtimesą teraz wycofane. (Ic7930, b/480462213)- Zmieniono nazwę
Plane.TypenaPlaneType. (I8c90c, b/482675376) - Zmieniono nazwę
Hand.HandSidenaHandSide. (Ica562, b/482675376) - Zmieniono nazwę
Plane.LabelnaPlaneLabel. (Ic6b67, b/482675376) - Zmieniono nazwę
Geospatial.SurfacenaGeospatialSurface. (I1a8be, b/482675376) - Zmieniono nazwę
Geospatial.StatenaGeospatialState. (I203fa, b/482675376) - Przeniesiono interfejs API
NativeDatado bibliotekixr:runtime:runtime. (I87954, b/494251500) - Funkcje
Session.createiSession.configurenie są już wyczerpujące i wymagają klauzul else w instrukcjach when. (I9885e, b/495805998, b/495805998) - Środowisko wykonawcze
androidx.xr.runtime.FieldOfViewzostało wycofane. Zamiast niej użyj zasadyandroidx.xr.runtime.math.FieldOfView. (Ia01a0, b/480233045) - Zmieniliśmy Orbiter, aby używał
OrbiterAnchorPoint + VolumeOffsetlubOrbiterPoseProviderzamiast pozycji, przesunięcia, typu przesunięcia, wyrównania i wysokości. Usunęliśmy też parametrshouldRenderInNonSpatial. Jeśli deweloper nie chce, aby orbiter był renderowany w przestrzeni nieprzestrzennej, powinien umieścić go w instrukcji warunkowej i sprawdzić wartośćSpatialCapabilities. (I9fbb3, b/462428503) - Dodano modyfikatory, które można przenosić. Obecnie te modyfikatory działają dobrze w przypadku
SpatialPanelsiSpatialExternalSurface. Wkrótce będą one też obsługiwane w przypadkuSpatialGltfModels. Chcemy jednak, aby były one dobrze obsługiwane na wszystkich urządzeniachSubspaceComposables. (I9a3cd, b/479530787, b/478935063, b/478935063) - Deweloperzy powinni obserwować
ArDevice.stateprzepływ monitorowaniaState.trackingStatei dostosowywać renderowanie aplikacji lub ostrzeżenia odpowiednio do dokładności śledzenia. (Ic00f0, b/445466590) - Zmieniono nazwy wartości typu wyliczeniowego
HandJointType. (Ifbc83, b/482670596) - Zmieniono nazwy
FaceConfidenceRegionstałych. (Ia62d5, b/482670596) - Zmieniono nazwy stałych
FaceBlendShapeType. (I33b8b, b/482670596) - Dodano:
CreatePoseFromGeospatialPoseErrorInternaliCreateGeospatialPoseFromPoseErrorInternal. (I4bcf1, b/482666615) - Zmieniono nazwę
DeviceTrackingMode.LAST_KNOWNnaSPATIAL_LAST_KNOWN(z wycofanym elementem zastępczym), dodanoINERTIAL_LAST_KNOWNdo śledzenia 3DoF i dodanoTRACKING_DEGRADEDdoTrackingState. (Ie661c, b/445466590) - Wycofano
GroupEntity. Aby mieć obiekt z samą podstawową funkcjonalnością, wywołaj funkcjęEntity.create, która zwróci interfejs obiektu. (I4c450, b/473867483) - Dodano interfejs API
XrLog. Ustaw wartośćXrLog.isEnablednatrue, aby włączyć rejestrowanie w JetpackXR, i użyjXrLog.Level, aby ustawić poziom rejestrowania. (I76a1f, b/463460895, b/487378441)
Poprawki błędów
- Dodaj obsługę stanu śledzenia urządzenia do urządzeń OpenXR. (I91485, b/445466590)
Wersja 1.0.0-alpha12
25 marca 2026 r.
Publikacja androidx.xr.arcore:arcore-*:1.0.0-alpha12 Wersja 1.0.0-alpha12 zawiera te zmiany.
Zmiany w interfejsie API
- Zmieniono
Config.augmentedObjectCategoriesz listy na zbiór. (I25a64, b/487376359) - Typy
androidx.xr.arcore.Eyeiandroidx.xr.arcore.Hand. (I42438, b/449032900) - Dodano przeciążenie
Session.create, aby umożliwić przekazywanie kontekstu Androida na potrzeby określania zakresu zasobów. (I7d3fe, b/415805990, b/477386334) - Zmienia wartość
FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMITnaFakeRuntimeAnchor.anchorResourceLimit. (I90841, b/431992235) - Oznaczenie interfejsu
TiltGestureAPI jako eksperymentalnego, ponieważ w przyszłości może on zostać zmieniony lub usunięty. Aby korzystać z tego interfejsu API, włącz@ExperimentalGesturesApi(Ic9858). - Dodano możliwość ustawiania kategorii śledzenia
AugmentedObjectw konfiguracji (I1f6e4, b/480220930).
Poprawki błędów
- Naprawiono kompilację Chrome przez zaktualizowanie pliku META-INF/services/ o rzeczywistą lokalizację
PerceptionRuntimeFactory. (I7a801, b/481288291)
Wersja 1.0.0-alpha11
25 lutego 2026 r.
Publikacja androidx.xr.arcore:arcore-*:1.0.0-alpha11 Wersja 1.0.0-alpha11 zawiera te zmiany.
Wersja 1.0.0-alpha10
28 stycznia 2026 r.
Publikacja androidx.xr.arcore:arcore-*:1.0.0-alpha10 Wersja 1.0.0-alpha10 zawiera te zmiany.
Nowe funkcje
- Wprowadzamy interfejs
TiltGestureAPI, który zapewnia reaktywny interfejsFlowdo stabilnego wykrywania stanu nachylenia urządzenia (GÓRA/DÓŁ) wraz z postępem przejścia. (Ic269f, b/448152779) - ARCore w Jetpack XR korzysta teraz z mechanizmu rejestrowania środowiska wykonawczego XR. Więcej informacji znajdziesz tutaj:
androidx.xr.runtime.Log. (l52735, b/448697662)
Zmiany w interfejsie API
Geospatial.createPoseFromGeospatialPosedziała teraz na urządzeniach obsługujących OpenXR. (l362c6)
Wersja 1.0.0-alpha09
3 grudnia 2025 r.
Publikacja androidx.xr.arcore:arcore-*:1.0.0-alpha09 Wersja 1.0.0-alpha09 zawiera te zmiany.
Wersja 1.0.0-alpha08
19 listopada 2025 r.
Publikacja androidx.xr.arcore:arcore-*:1.0.0-alpha08 Wersja 1.0.0-alpha08 zawiera te zmiany.
Nowe funkcje
ARCoredla Jetpacka XR obsługuje teraz urządzenia, na których dostępne są Usługi Google Play dla AR.- Dodano interfejsy Geospatial API do sprawdzania dostępności VPS i konwersji pozycji (I144dc).
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 funkcji
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) HandJointTypezostał przeniesiony zxr:runtime:runtimedoxr:arcore:arcore. (Iadb9c, b/409058039)Hand.Stateudostępnia terazjava.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ą udostępnione. 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)
- Dodaj interfejs ARCore API dla
checkVpsAvailability(Idbded) - Dodano funkcje rozszerzeń
stateFlowabledo:xr:arcore:arcore-rxjava3, aby mogli z nich korzystać deweloperzy 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 doAnchorGuavado użytku przez deweloperów Java. (I4af1c, b/425984631)Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface)dodano doEarthGuavado użytku przez deweloperów Java. (I66357, b/425992992)- Deweloperzy Java będą używać funkcji rozszerzeń dla
GltfModel.createAsyncwGltfModel.kt. Funkcje asynchroniczne wGltfModelzostaną usunięte. (I0af60) - Ta biblioteka używa teraz 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) - Dodano funkcje rozszerzeń
subscribeAsFlowabledo:xr:arcore:arcore-rxjava3, aby mogli z nich korzystać deweloperzy 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ą KGP w wersji 2.0.0 lub nowszej. (Idb6b5)
TrackingStateiHandJointTypezostały przeniesione z ARCore do środowiska wykonawczego.- Wartość
Hand.State.isActive (boolean)została zmieniona naHand.State.trackingState (androidx.xr.runtime.TrackingState). Anchor.loadzwracaAnchor.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
- Dodaliśmy obsługę śledzenia rąk. Aby uzyskać dostęp do informacji o śledzeniu, użyj metod
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ż krytycznej awarii z powodu sytuacji 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łogi, ściany i blaty). Więcej informacji o korzystaniu z ARCore w Jetpack XR znajdziesz w przewodniku dla programistów.
Session: ARCore w Jetpack XR korzysta z środowiska wykonawczego Jetpack XR, aby zapewnić działanie swoich funkcji. Sesja będzie Ci potrzebna do korzystania z większości interfejsów ARCore for Jetpack XR API, więc zapoznaj się z jej dokumentacją.Plane: korzystaj z płaszczyzn, aby poznawać otaczający Cię świat. Każda płaszczyzna maLabel, który opisuje ją semantycznie. Możesz użyćsubscribe, aby otrzymywać powiadomienia o najnowszych wykrytych samolotach, lubstate, aby otrzymywać powiadomienia o zmianach dotyczących konkretnego samolotu.Anchor: połączenie między obiektem wirtualnym a lokalizacją w rzeczywistym świecie. Kotwice można przytwierdzać do konkretnej lokalizacji w przestrzeni (za pomocącreate) lub doTrackable(za pomocącreateAnchor).Kotwice można wykorzystywać wielokrotnie w różnych sesjach. Możesz ich używać do przechowywania
persist, wyliczaniagetPersistedAnchorUuidsi pobieraniaload. Pamiętaj, abyunpersistje, 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żliwia naturalne interakcje użytkowników za pomocą
hitTest. Test trafienia używaRay, aby określić, z którymi treściami się przecina, i na podstawie tej lokalizacji tworzyAnchor. Rozważ przeprowadzenie testu hitTest z poziomu elementuInputEvent.
Znane problemy
Od wywołania funkcji
unpersistdo usunięcia identyfikatora UUID z wyników zwracanych przez funkcjęgetPersistedAnchorUuidsmoże minąć trochę czasu.createnie sprawdzi, czy system ma wystarczającą ilość zasobów, aby zwrócić nowe kotwice. Utworzenie zbyt dużej liczby kotwic może spowodować awarię.Zapisywanie kotwicy, która została wcześniej zapisana i cofnięta, nie jest obecnie obsługiwane.
Używanie w emulatorze 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 błędem kodu natywnego i natychmiast przerywać działanie.W pewnych okolicznościach podczas wywoływania funkcji
persistmoże zostać błędnie zgłoszony wyjątekRuntimeExceptionz 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 tego problemu zalecamy umieszczenie wywołania funkcjipersistw blokutry.