ARCore für Jetpack XR
Letzte Aktualisierung | Stabile Version | Releasekandidat | Betarelease | Alpha-Release |
---|---|---|---|---|
24. September 2025 | - | - | - | 1.0.0-alpha06 |
Abhängigkeiten deklarieren
Wenn Sie eine Abhängigkeit von ARCore für Jetpack XR hinzufügen möchten, müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Maven-Repository von Google.
Fügen Sie der Datei build.gradle
für Ihre App oder Ihr Modul die Abhängigkeiten für die benötigten Artefakte hinzu:
Cool
dependencies { implementation "androidx.xr.arcore:arcore:1.0.0-alpha06" // Optional dependencies for asynchronous conversions implementation "androidx.xr.arcore:arcore-guava:1.0.0-alpha06" implementation "androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha06" }
Kotlin
dependencies { implementation("androidx.xr.arcore:arcore:1.0.0-alpha06") // Optional dependencies for asynchronous conversions implementation("androidx.xr.arcore:arcore-guava:1.0.0-alpha06") implementation("androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha06") }
Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.
Feedback
Ihr Feedback hilft uns, Jetpack zu verbessern. Lassen Sie es uns wissen, wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben. Sehen Sie sich die vorhandenen Probleme in dieser Bibliothek an, bevor Sie ein neues erstellen. Sie können für ein vorhandenes Problem stimmen, indem Sie auf die Schaltfläche mit dem Stern klicken.
Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.
Version 1.0
Version 1.0.0-alpha06
24. September 2025
androidx.xr.arcore:arcore-*:1.0.0-alpha06
ist veröffentlicht. Version 1.0.0-alpha06 enthält diese Commits.
API-Änderungen
- Die Unterstützung für Tests für
ARCore
wurde zumxr:arcore:arcore-testing
-Modul migriert. (I25469) ArDevice
undRenderViewpoint
wurden hinzugefügt, damit Anwendungen die Geräteausrichtung und die Displaykonfiguration für das Rendern abrufen können. (Ib7e3f)- Benennen Sie
HandJointType
-Enums mit dem PräfixHAND_JOINT_TYPE_
um. (I3f7cd) HandJointType
wurde vonxr:runtime:runtime
nachxr:arcore:arcore
verschoben. (Iadb9c, b/409058039)Hand.State
stellt jetzt einejava.nio.FloatBuffer
mit den Gelenk-Posen in einem Format bereit, das einen einfachen Zugriff auf leistungsbezogene Anwendungen ermöglicht. (I55e27)
Version 1.0.0-alpha05
30. Juli 2025
androidx.xr.arcore:arcore:1.0.0-alpha05
, androidx.xr.arcore:arcore-guava:1.0.0-alpha05
und androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha05
sind veröffentlicht. Version 1.0.0-alpha05 enthält diese Commits.
Neue Funktionen
- Füge
getPrimaryHandSide
hinzu, damit der Entwickler die Informationen auf der rechten Seite (I270bd) erhält. - Geospatial Check VPS Availability API hinzufügen (I58573)
- ARCore API für
checkVpsAvailability
(Idbded) hinzufügen stateFlowable
-Erweiterungsfunktionen, die:xr:arcore:arcore-rxjava3
hinzugefügt wurden, damit sie von Java-Entwicklern verwendet werden können. (I083aa, b/427247794)
API-Änderungen
- Die Konfigurationswerte für
*Mode
wurden umbenannt, um ihr Verhalten besser widerzuspiegeln. (I6d247, b/414648065) - Das Haupt-ARCore-Artefakt (xr:arcore:arcore) enthält nur asynchrone APIs im Kotlin-Stil. Java-Entwickler können die
xr:arcore:arcore-rxjava3
-Bibliothek verwenden, um auf kompatible APIs zuzugreifen. (Ia525e, b/422794329) - Das Haupt-ARCore-Artefakt (
xr:scenecore:scenecore
) enthält nur asynchrone APIs im Kotlin-Stil. Java-Entwickler können diexr:arcore:arcore-guava
-Bibliothek verwenden, um auf kompatible APIs zuzugreifen. (Iffcb4, b/422773524) Anchor.persistAsync()
wurdeAnchorGuava
zur Verwendung durch Java-Entwickler hinzugefügt. (I4af1c, b/425984631)Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface)
wurdeEarthGuava
zur Verwendung durch Java-Entwickler hinzugefügt. (I66357, b/425992992)- Java-Entwickler verwenden die Erweiterungsfunktionen für
GltfModel.createAsync
inGltfModel.kt
. Asynchrone Funktionen inGltfModel
werden gelöscht. (I0af60) - In dieser Bibliothek werden jetzt JSpecify-Annotationen für Nullsicherheit verwendet, die typbezogen sind. Kotlin-Entwickler sollten das folgende Compiler-Argument verwenden, um die korrekte Verwendung zu erzwingen:
-Xjspecify-annotations=strict
(dies ist die Standardeinstellung ab Version 2.1.0 des Kotlin-Compilers) (Ia8420, b/326456246) subscribeAsFlowable
-Erweiterungsfunktionen, die:xr:arcore:arcore-rxjava3
hinzugefügt wurden, damit sie von Java-Entwicklern verwendet werden können. (Id3e49, b/427277298)
Version 1.0.0-alpha04
7. Mai 2025
androidx.xr.arcore:arcore:1.0.0-alpha04
ist veröffentlicht. Version 1.0.0-alpha04 enthält diese Commits.
API-Änderungen
- Für Projekte, die mit Kotlin 2.0 veröffentlicht wurden, ist KGP 2.0.0 oder höher erforderlich. (Idb6b5)
TrackingState
undHandJointType
wurden von ARCore zur Laufzeit verschoben.Hand.State.isActive (boolean)
wurde inHand.State.trackingState (androidx.xr.runtime.TrackingState)
geändert.Anchor.load
gibtAnchor.AnchorLoadInvalidUuid
zurück, wenn die UUID ungültig ist.
Version 1.0.0-alpha03
26. Februar 2025
androidx.xr.arcore:arcore:1.0.0-alpha03
wird ohne nennenswerte Änderungen seit der letzten Alphaversion veröffentlicht. Version 1.0.0-alpha03 enthält diese Commits.
Version 1.0.0-alpha02
12. Februar 2025
androidx.xr.arcore:arcore:1.0.0-alpha02
ist veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.
Neue Funktionen
- Unterstützung für Handtracking hinzugefügt. Verwenden Sie
Hand.left
undHand.right
, um auf die Tracking-Informationen zuzugreifen. - APIs, die einen Anker generieren (
Anchor.create
,Anchor.load
,Plane.createAnchor
), geben jetzt alleAnchorCreateResult
zurück und implementierenAnchorCreateResourcesExhausted
korrekt.
Fehlerkorrekturen
Anchor.detach
führt nicht mehr zu einem schwerwiegenden Absturz aufgrund eines Race-Conditions mit dem Thread für die Sitzungsaktualisierung.Anchor.create
ist stabiler, wenn es auf einem Emulator ausgeführt wird.
Version 1.0.0-alpha01
12. Dezember 2024
androidx.xr.arcore:arcore-* 1.0.0-alpha01
ist veröffentlicht.
Funktionen der Erstveröffentlichung
Die ARCore for Jetpack XR-Bibliothek ist von der vorhandenen ARCore-Bibliothek inspiriert und bietet Funktionen zum Einblenden digitaler Inhalte in die reale Welt. Diese Bibliothek umfasst Funktionen wie Bewegungsverfolgung, persistente Anker, Treffertests und die Identifizierung von Ebenen mit semantischer Kennzeichnung (z. B. Boden, Wände und Tischplatten). Weitere Informationen zur Verwendung von ARCore für Jetpack XR finden Sie im Entwicklerleitfaden.
Session
: ARCore für Jetpack XR nutzt die Jetpack XR-Laufzeit, um seine Funktionen zu ermöglichen. Sie verwenden eine Sitzung, um mit den meisten ARCore für Jetpack XR-APIs zu interagieren. Sehen Sie sich daher die Dokumentation dazu an.Plane
: Mit Ebenen können Sie die Welt um sich herum besser verstehen. Jede Ebene hat einLabel
, das sie semantisch beschreibt. Mitsubscribe
können Sie sich über die zuletzt erkannten Flugzeuge benachrichtigen lassen und mitstate
über Änderungen an einem bestimmten Flugzeug.Anchor
: Eine Verknüpfung zwischen einem virtuellen Objekt und einem realen Ort. Anker können an einem bestimmten Ort im Raum (mitcreate
) oder an einemTrackable
(mitcreateAnchor
) angebracht werden.Anker können sitzungsübergreifend wiederverwendet werden. Sie können
persist
verwenden, um sie zu speichern,getPersistedAnchorUuids
, um sie aufzulisten, undload
, um sie abzurufen.unpersist
Sie sie, sobald sie nicht mehr verwendet werden.Anker sind zwischen ARCore für Jetpack XR und Jetpack SceneCore interoperabel. Sie können ein
AnchorEntity
mit einem Anker erstellen. Wenn Sie bereits eine AnchorEntity haben, können Sie mitgetAnchor
den zugehörigen Anker abrufen.Natürliche Nutzerinteraktionen mit
hitTest
ermöglichen Bei einem Hit-Test wird einRay
verwendet, um zu ermitteln, welche Inhalte es schneidet, und um an dieser Stelle einAnchor
zu erstellen. Führen Sie einen Hit-Test über einInputEvent
aus.
Bekannte Probleme
Zwischen dem Aufrufen von
unpersist
und dem Entfernen der zugehörigen UUID aus den Ergebnissen, die vongetPersistedAnchorUuids
zurückgegeben werden, kann es zu einer Verzögerung kommen.create
prüft nicht, ob das System genügend Ressourcen hat, um neue Anker zurückzugeben. Wenn Sie zu viele Anker erstellen, kann es zu einem Absturz kommen.Das Speichern eines Ankers, der zuvor gespeichert und dann wieder entfernt wurde, wird derzeit nicht unterstützt.
Die Verwendung im Emulator wird unterstützt, das Verhalten ist jedoch möglicherweise nicht so stabil wie auf einem echten Gerät. Insbesondere Aufrufe von
create
können mit einem nativen Codefehler fehlschlagen und die Aktivität sofort beenden.Unter bestimmten Umständen kann beim Aufrufen von
persist
mit der Meldung „Anchor was not persisted“ (Anker wurde nicht gespeichert) fälschlicherweise eineRuntimeException
ausgelöst werden. In diesen Fällen wird die Funktion trotzdem erfolgreich ausgeführt und der Anker wird gespeichert. Als Workaround empfehlen wir, den Aufruf vonpersist
in einentry
-Block einzuschließen.