ARCore dla Jetpack XR
| Najnowsza aktualizacja | Wersja stabilna | Wersja kandydująca do publikacji | Wersja beta | Wersja alfa |
|---|---|---|---|---|
| 6 maja 2026 r. | - | - | - | 1.0.0-alpha13 |
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 od potrzebnych artefaktów w pliku build.gradle aplikacji lub modułu:
Odlotowe
dependencies { implementation "androidx.xr.arcore:arcore:1.0.0-alpha13" // Optional dependencies for asynchronous conversions implementation "androidx.xr.arcore:arcore-guava:1.0.0-alpha13" implementation "androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha13" }
Kotlin
dependencies { implementation("androidx.xr.arcore:arcore:1.0.0-alpha13") // Optional dependencies for asynchronous conversions implementation("androidx.xr.arcore:arcore-guava:1.0.0-alpha13") implementation("androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha13") }
Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.
Prześlij opinię
Twoja opinia pomoże nam ulepszyć Jetpack. Jeśli odkryjesz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nowy problem, zapoznaj się z istniejącymi 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 do śledzenia problemów Issue Tracker documentation.
Wersja 1.0
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 commity.
Zmiany w interfejsie API
TrackingStateiVpsAvailabilityResultzostały przeniesione doandroidx.xr.arcore package, a typy wandroidx.xr.runtimezostały 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) Session.createiSession.configurenie są już wyczerpujące i wymagają klauzuli else w instrukcjach when. (I9885e, b/495805998, b/495805998)androidx.xr.runtime.FieldOfViewzostał wycofany. Zamiast niego używajandroidx.xr.runtime.math.FieldOfView. (Ia01a0, b/480233045)- Zmieniono Orbiter tak, aby używał
OrbiterAnchorPoint + VolumeOffsetlubOrbiterPoseProviderzamiast pozycji, przesunięcia, offsetType, wyrównania i wysokości. Usunięto też parametrshouldRenderInNonSpatial. Jeśli deweloper nie chce, aby Orbiter renderował w przestrzeni nieprzestrzennej, powinien umieścić go w instrukcji if i sprawdzićSpatialCapabilities. (I9fbb3, b/462428503) - Dodano modyfikatory ruchome. Te modyfikatory działają obecnie dobrze w przypadku
SpatialPanelsiSpatialExternalSurface. Wkrótce będą też obsługiwane w przypadkuSpatialGltfModels. Jednak naszym celem jest, aby były dobrze obsługiwane we wszystkichSubspaceComposables. (I9a3cd, b/479530787, b/478935063, b/478935063) - Deweloperzy powinni obserwować przepływ
ArDevice.state, aby monitorowaćState.trackingStatei odpowiednio dostosowywać renderowanie lub ostrzeżenia w aplikacji na podstawie dokładności śledzenia. (Ic00f0, b/445466590) - Zmieniono nazwy wartości enum
HandJointType. (Ifbc83, b/482670596) - Zmieniono nazwy stałych
FaceConfidenceRegion. (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 rezerwowym), dodanoINERTIAL_LAST_KNOWNdo śledzenia 3DoF i dodanoTRACKING_DEGRADEDdoTrackingState. (Ie661c, b/445466590) - Wycofano
GroupEntity. Aby mieć encję z podstawową funkcjonalnością encji, wywołajEntity.create, która zwróci interfejs encji. (I4c450, b/473867483) - Dodano interfejs API
XrLog. UstawXrLog.isEnablednatrue, aby włączyć logowanie w JetpackXR, i użyjXrLog.Level, aby ustawić poziom logowania. (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 commity.
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) - Zmieniono
FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMITnaFakeRuntimeAnchor.anchorResourceLimit. (I90841, b/431992235) - Oznaczono interfejs API
TiltGesturejako eksperymentalny, ponieważ w przyszłości może zostać zmieniony lub usunięty. Aby używać 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 commity.
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 commity.
Nowe funkcje
- Wprowadzono interfejs API
TiltGesture, który udostępnia reaktywnyFlowdo stabilnego wykrywania stanu pochylenia urządzenia (GÓRA/DÓŁ) z postępem przejścia. (Ic269f, b/448152779) - ARCore dla Jetpack XR korzysta teraz z mechanizmu logowania XR Runtime. Więcej informacji znajdziesz w
androidx.xr.runtime.Log. (l52735, b/448697662)
Zmiany w interfejsie API
Geospatial.createPoseFromGeospatialPosedziała teraz na urządzeniach z 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 commity.
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 commity.
Nowe funkcje
ARCoredla Jetpack XR obsługuje teraz urządzenia, na których dostępne są Usługi Google Play dla AR.- Dodano interfejsy API Geospatial 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 commity.
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 commity.
Zmiany w interfejsie API
- Obsługa testowania
ARCorezostała przeniesiona do modułuxr:arcore:arcore-testing. (I25469) - Dodano
ArDeviceiRenderViewpoint, aby umożliwić aplikacjom pobieranie pozycji urządzenia i konfiguracji wyświetlania na potrzeby renderowania. (Ib7e3f) - Zmieniono nazwy enum
HandJointTypez prefiksemHAND_JOINT_TYPE_. (I3f7cd) HandJointTypezostał przeniesiony zxr:runtime:runtimedoxr:arcore:arcore. (Iadb9c, b/409058039)Hand.Stateudostępnia terazjava.nio.FloatBufferz pozycjami stawów w formacie, który umożliwia łatwy dostęp do aplikacji zoptymalizowanych pod kątem wydajności. (I55e27)
Wersja 1.0.0-alpha05
30 lipca 2025 r.
Publikacja 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. Wersja 1.0.0-alpha05 zawiera te commity.
Nowe funkcje
- Dodaj
getPrimaryHandSide, aby deweloper mógł uzyskać informacje o stronie ręki (I270bd). - Dodaj interfejs API sprawdzania dostępności VPS Geospatial (I58573).
- Dodaj interfejs API ARCore do
checkVpsAvailability(Idbded) - Dodano funkcje rozszerzeń
stateFlowabledo:xr:arcore:arcore-rxjava3na potrzeby deweloperów Java. (I083aa, b/427247794)
Zmiany w interfejsie API
- Zmieniono nazwy wartości
*Modew konfiguracji, 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. Deweloperzy Java mogą korzystać z biblioteki
xr:arcore:arcore-rxjava3, aby uzyskać 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. Deweloperzy Java mogą korzystać z bibliotekixr:arcore:arcore-guava, aby uzyskać dostęp do zgodnych interfejsów API. (Iffcb4, b/422773524) - Dodano
Anchor.persistAsync()doAnchorGuavana potrzeby deweloperów Java. (I4af1c, b/425984631) - Dodano
Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface)doEarthGuavana potrzeby deweloperów Java. (I66357, b/425992992) - Deweloperzy Java będą używać funkcji rozszerzeń
GltfModel.createAsyncwGltfModel.kt. Funkcje asynchroniczne wGltfModelzostaną usunięte. (I0af60) - Ta biblioteka używa teraz adnotacji o braku wartości null JSpecify, które są używane w typach. 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-rxjava3na potrzeby 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 commity.
Zmiany w interfejsie API
- Projekty opublikowane w Kotlin 2.0 wymagają KGP 2.0.0 lub nowszego. (Idb6b5)
TrackingStateiHandJointTypezostały przeniesione z ARCore do Runtime.Hand.State.isActive (boolean)został zmieniony naHand.State.trackingState (androidx.xr.runtime.TrackingState).Anchor.loadzwracaAnchor.AnchorLoadInvalidUuid, jeśli UUID jest nieprawidłowy.
Wersja 1.0.0-alpha03
26 lutego 2025 r.
Publikacja androidx.xr.arcore:arcore:1.0.0-alpha03 bez istotnych zmian od ostatniej wersji alfa. Wersja 1.0.0-alpha03 zawiera te commity.
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 commity.
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ż poważnego 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 dla Jetpack XR, inspirowana istniejącą biblioteką ARCore, umożliwia łączenie treści cyfrowych z rzeczywistym światem. Ta biblioteka obejmuje śledzenie ruchu, trwałe kotwice, testowanie trafień i identyfikację płaszczyzn z etykietowaniem semantycznym (np. podłoga, ściany i blaty). Więcej informacji o pracy z ARCore dla Jetpack XR znajdziesz w przewodniku dla programistów.
Session: ARCore dla Jetpack XR korzysta z Jetpack XR Runtime, aby obsługiwać swoje funkcje. Aby korzystać z większości interfejsów API ARCore dla Jetpack XR, będziesz używać sesji, więc zapoznaj się z jej dokumentacją.Plane: używaj płaszczyzn, aby zrozumieć otaczający Cię świat. Każda płaszczyzna maLabel, która opisuje ją semantycznie. Możesz użyćsubscribe, aby otrzymywać powiadomienia o najnowszych wykrytych płaszczyznach, lubstate, aby otrzymywać powiadomienia o zmianach w konkretnej płaszczyźnie.Anchor: połączenie między obiektem wirtualnym a lokalizacją w świecie rzeczywistym. Kotwice można dołączyć do określonej lokalizacji w przestrzeni (za pomocącreate) lub doTrackable(za pomocącreateAnchor).Kotwice można ponownie wykorzystywać w różnych sesjach. Możesz użyć
persist, aby je zapisać,getPersistedAnchorUuids, aby je wyliczyć, iload, aby je pobrać. Pamiętaj, aby użyćunpersist, gdy nie będą już używane.Kotwice są interoperacyjne między ARCore dla Jetpack XR a Jetpack SceneCore. Możesz utworzyć
AnchorEntityza pomocą kotwicy lub, jeśli masz już AnchorEntity, możesz użyćgetAnchor, aby pobrać jej kotwicę.Zapewnij naturalne interakcje użytkownika za pomocą
hitTest. Funkcja hitTest używaRay, aby określić, które treści przecina, i utworzyćAnchorw tej lokalizacji. Rozważ przeprowadzenie testu trafień zInputEvent.
Znane problemy
Może wystąpić opóźnienie między wywołaniem
unpersista usunięciem jego UUID z wyników zwracanych przezgetPersistedAnchorUuids.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ę.Obecnie nie można utrwalić kotwicy, która została wcześniej utrwalona i usunięta.
Używanie w emulatorze jest obsługiwane, ale działanie może nie być tak stabilne jak w przypadku działania na rzeczywistym urządzeniu. W szczególności wywołania
createmogą się nie powieść z powodu błędu kodu natywnego i natychmiast zakończyć działanie.W pewnych okolicznościach podczas wywoływania
persistmoże zostać błędnie zgłoszonyRuntimeExceptionz komunikatem „Anchor was not persisted”. W takich okolicznościach funkcja nadal będzie działać, a kotwica zostanie utrwalona. Jako obejście zalecamy umieszczenie wywołaniapersistw blokutry.