ARCore w Jetpack XR
Najnowsza aktualizacja | Wersja stabilna | Wersja kandydująca do publikacji | Wersja Beta | Wersja alfa |
---|---|---|---|---|
30 lipca 2025 r. | - | - | - | 1.0.0-alpha05 |
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:
Odlotowe
dependencies { implementation "androidx.xr.arcore:arcore:1.0.0-alpha05" }
Kotlin
dependencies { implementation("androidx.xr.arcore:arcore:1.0.0-alpha05") }
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 nową kartę, 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-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 commity.
Nowe funkcje
- Dodaj
getPrimaryHandSide
, aby deweloper mógł uzyskać informacje o stronie (I270bd). - Dodano interfejs API sprawdzania dostępności VPS na podstawie danych geoprzestrzennych (I58573)
- Dodawanie interfejsu ARCore API do aplikacji
checkVpsAvailability
(Idbded) - Funkcje rozszerzeń
stateFlowable
dodane do:xr:arcore:arcore-rxjava3
do użytku przez deweloperów Java. (I083aa, b/427247794)
Zmiany w interfejsie API
- Nazwy wartości konfiguracji
*Mode
został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 doAnchorGuava
do użytku przez deweloperów Java. (I4af1c, b/425984631)Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface)
dodano doEarthGuava
do użytku przez deweloperów Java. (I66357, b/425992992)- Deweloperzy Javy będą używać funkcji rozszerzeń dla
GltfModel.createAsync
wGltfModel.kt
. Funkcje asynchroniczne wGltfModel
zostaną usunięte. (I0af60) - Ta biblioteka używa teraz adnotacji o wartości null JSpecify, które są używane w typach. Programiści 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ń
subscribeAsFlowable
dodane do:xr:arcore:arcore-rxjava3
do użytku przez deweloperów Java. (Id3e49, b/427277298)
Wersja 1.0.0-alpha04
7 maja 2025 r.
Zostanie wycofaneandroidx.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)
TrackingState
iHandJointType
zostały przeniesione z ARCore do środowiska wykonawczego.- Wartość
Hand.State.isActive (boolean)
została zmieniona naHand.State.trackingState (androidx.xr.runtime.TrackingState)
. Anchor.load
zwracaAnchor.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 commity.
Wersja 1.0.0-alpha02
12 lutego 2025 r.
Zostanie wycofaneandroidx.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.left
iHand.right
. - Interfejsy API, które generują kotwicę (
Anchor.create
,Anchor.load
,Plane.createAnchor
), zwracają terazAnchorCreateResult
i prawidłowo implementująAnchorCreateResourcesExhausted
.
Poprawki błędów
Anchor.detach
nie powoduje już błędu krytycznego z powodu wyścigu z wątkiem aktualizacji sesji.Anchor.create
jest bardziej stabilny podczas działania na emulatorze.
Wersja 1.0.0-alpha01
12 grudnia 2024 r.
Zostanie wycofaneandroidx.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 wykorzystuje w tle środowisko wykonawcze Jetpacka XR do obsługi swoich funkcji. Do interakcji 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 maLabel
, który opisuje go 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 świecie rzeczywistym. Kotwice można przyczepić do określonej lokalizacji w przestrzeni (za pomocącreate
) lub doTrackable
(za pomocącreateAnchor
).Kotwice można wykorzystywać wielokrotnie w ramach różnych sesji. Możesz ich używać do przechowywania
persist
, wyliczaniagetPersistedAnchorUuids
i pobieraniaload
. Pamiętaj, abyunpersist
je, gdy nie będą już używane.Punkty zakotwiczenia są interoperacyjne między ARCore dla Jetpack XR i Jetpack SceneCore. Możesz utworzyć
AnchorEntity
za pomocą kotwicy lub, jeśli masz już AnchorEntity, możesz użyćgetAnchor
, aby pobrać powiązaną z nią kotwicę.Umożliwiaj 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 poziomuInputEvent
.
Znane problemy
Od wywołania funkcji
unpersist
do usunięcia identyfikatora UUID z wyników zwracanych przez funkcjęgetPersistedAnchorUuids
może minąć trochę czasu.create
nie sprawdza, 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.
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
create
mogą kończyć się niepowodzeniem z powodu błędu kodu natywnego i natychmiast przerywać działanie.W niektórych przypadkach podczas wywoływania funkcji
persist
może zostać błędnie zgłoszony wyjątekRuntimeException
z 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 funkcjipersist
w blokutry
.