ARCore für Jetpack XR

Mit Wahrnehmungsfunktionen können Sie digitale Inhalte in die reale Welt einbinden.
Letzte Aktualisierung Stabile Release Releasekandidat Beta-Release Alpha-Release
07. Oktober 2026 - 1.0.0-rc02 - -

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 Google-Repository bei Maven.

Fügen Sie die Abhängigkeiten für die benötigten Artefakte der Datei build.gradle für Ihre App oder Ihr Modul hinzu:

Cool

dependencies {
    implementation "androidx.xr.arcore:arcore:1.0.0-rc02"
}

Kotlin

dependencies {
    implementation("androidx.xr.arcore:arcore:1.0.0-rc02")
}

Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.

Feedback

Ihr Feedback hilft uns, Jetpack zu verbessern. Wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben, lassen Sie es uns wissen. Bevor Sie ein neues Problem erstellen, sollten Sie sich jedoch die bereits gemeldeten Probleme in dieser Bibliothek ansehen. Wenn Sie sich einer Problemmeldung anschließen möchten, klicken Sie auf den Button mit dem Stern.

Neues Problem melden

Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.

Version 1.0

Version 1.0.0-rc02

07. Oktober 2026

androidx.xr.arcore:arcore-*:1.0.0-rc02 ist veröffentlicht. Version 1.0.0-rc02 enthält diese Commits.

Fehlerkorrekturen

  • Ein Problem wurde behoben, bei dem OpenXrRuntime die Sitzung nicht konfigurieren konnte, wenn das Tracking von Augmented Reality-Bildern nicht unterstützt wurde. (I8b9759)
  • Es wurden mehrere Probleme behoben, darunter: Verbesserte Speicherverwaltung in XrInstanceManager durch Verwendung von applicationContext, Behebung potenzieller Probleme im Zusammenhang mit dem Lebenszyklus durch Vereinfachung der Caching-Mechanismen von Session und Scene sowie Verbesserung von ReferenceCleaner, um threadsichere Bereinigungsregistrierungen und explizite Entsorgungen zu ermöglichen. (Id0b76c)

Version 1.0.0-rc01

9. September 2026

androidx.xr.arcore:arcore-*:1.0.0-rc01 ist veröffentlicht. Version 1.0.0-rc01 enthält diese Commits.

Version 1.0.0-beta02

12. August 2026

androidx.xr.arcore:arcore-*:1.0.0-beta02 ist veröffentlicht. Version 1.0.0-beta02 enthält diese Commits.

Fehlerkorrekturen

  • Beheben Sie das Problem mit der Parallelität bei der Persistenz von OpenXR-Ankern. (I15c8b)
  • toString() wurde in weiteren Klassen für das Debugging implementiert. (I587e8)

Version 1.0.0-beta01

15. Juli 2026

androidx.xr.arcore:arcore-*:1.0.0-beta01 ist veröffentlicht. Version 1.0.0-beta01 enthält diese Commits.

API-Änderungen

  • Der Modifier für die Größenanpassung wurde aktualisiert und verwendet jetzt ResizePolicy anstelle von zwei Modifiers (I7fb0f, b/496257436, b/519672992).
  • Verschiebbare Überladung mit dem Parameter movePolicy hinzugefügt und transformingMovable und movable eingestellt (Ic88c1, b/481781189)
  • TrackingState.TRACKING_DEGRADED wurde aus der öffentlichen API-Oberfläche entfernt und die Laufzeitstatus werden stattdessen PAUSED zugeordnet. Aktualisieren Sie TrackingState, sodass Enums anstelle von int-Werten für die String- und Laufzeitkonvertierung verwendet werden. (I3eb5b, b/524326338)
  • „Session.create“ wurde in eine Suspend-Funktion umgewandelt. (I5d27f)
  • Die ProjectedPermissionsResultContract (I141d5, b/515699436) wurde eingestellt.
  • AnchorEntity wurde in AnchorSpace umbenannt (Ifa95e, b/513619219)

Version 1.0.0-alpha15

17. Juni 2026

androidx.xr.arcore:arcore-*:1.0.0-alpha15 ist veröffentlicht. Version 1.0.0-alpha15 enthält diese Commits.

API-Änderungen

  • "HitResult.createAnchor" wurde entfernt. Entwickler können einen Anker erstellen, der HitResult darstellt, wenn das verfolgbare Element des Ergebnisses ein Anchorable ist. Dazu müssen sie die Trefferposition an die createAnchor-Funktion des Anchorable übergeben. (Ia851e)
  • "AnchorUnsupportedObject" wurde entfernt. Sie wird nicht mehr von einer JXR ARCore-Laufzeit ausgelöst. (Ia851e)
  • androidx.xr.arcore.Anchor und androidx.xr.arcore.ArDevice implementieren jetzt androidx.xr.arcore.Trackable. (I57b65)
  • Depth.left, Depth.right und Depth.mono sind jetzt nicht mehr nullfähig (I1fc5e)
  • Face.getUserFace ist jetzt nicht mehr nullfähig (I0eac1)
  • RenderViewpoint.left, RenderViewpoint.right und RenderViewpoint.mono sind jetzt nicht mehr nullfähig (Icf7fa)
  • Hand.left und Hand.right sind nicht nullfähig (Icef37).
  • QrCode API wurde hinzugefügt (Ia0bbe)

Version 1.0.0-alpha14

19. Mai 2026

androidx.xr.arcore:arcore-*:1.0.0-alpha14 ist veröffentlicht. Version 1.0.0-alpha14 enthält diese Commits.

API-Änderungen

  • Wir stellen GeospatialMode.VPS_AND_GPS zugunsten von GeospatialMode.SPATIAL ein und führen einen neuen Tracking-Modus mit geringerem Stromverbrauch ein, GeospatialMode.INERTIAL, der nur IMU und GPS verwendet. (I1e6cd)
  • Benutzerdefinierte Anker-Ausnahmeklassen: AnchorInvalidUuidException, AnchorNotAuthorizedException, AnchorUnsupportedLocationException, AnchorRuntimeFailureException und AnchorUnsupportedObjectException sind jetzt RuntimeException-Instanzen, die nicht geprüft werden sollen. (I9356e)
  • ArCoreTestRule API hinzugefügt, einschließlich TestArDevice, TestAugmentableObject, TestDepthMap, TestEye, TestFace, TestGeospatial, TestHand, TestPlane, TestRenderViewpoint und TestTrackable (I0ad3c)
  • Entfernt AnchorLoadInvalidUuid, AnchorCreateUnsupportedObject, AnchorCreateUnsupportedLocation und AnchorCreateNotAuthorized. Alle diese Fehler sind jetzt Ausnahmen in der Laufzeit. Entfernt AnchorCreateIllegalState. In den meisten Fällen wurde sie durch AnchorCreateTrackingUnavailable ersetzt. Fügt AnchorException und die abgeleiteten Klassen AnchorInvalidUuidException, AnchorNotAuthorizedException, AnchorUnsupportedLocationException, AnchorRuntimeFailureException und AnchorUnsupportedObjectException hinzu. (I4c4dd)

Externer Beitrag

  • Die AugmentedImage API für benutzerdefiniertes Markertracking wurde hinzugefügt. (I0cf09)

Version 1.0.0-alpha13

6. Mai 2026

androidx.xr.arcore:arcore-*:1.0.0-alpha13 ist veröffentlicht. Version 1.0.0-alpha13 enthält diese Commits.

API-Änderungen

  • TrackingState und VpsAvailabilityResult wurden in androidx.xr.arcore package verschoben und die Typen in androidx.xr.runtime sind jetzt veraltet. (Ic7930, b/480462213)
  • Plane.Type wurde in PlaneType umbenannt. (I8c90c, b/482675376)
  • Hand.HandSide wurde in HandSide umbenannt. (Ica562, b/482675376)
  • Plane.Label wurde in PlaneLabel umbenannt. (Ic6b67, b/482675376)
  • Geospatial.Surface wurde in GeospatialSurface umbenannt. (I1a8be, b/482675376)
  • Geospatial.State wurde in GeospatialState umbenannt. (I203fa, b/482675376)
  • Die NativeData API wurde in die xr:runtime:runtime-Bibliothek verschoben. (I87954, b/494251500)
  • Session.create und Session.configure sind jetzt nicht mehr erschöpfend und erfordern „else“-Klauseln in „when“-Anweisungen. (I9885e, b/495805998, b/495805998)
  • androidx.xr.runtime.FieldOfView wurde verworfen. Verwenden Sie stattdessen androidx.xr.runtime.math.FieldOfView. (Ia01a0, b/480233045)
  • Orbiter verwendet jetzt entweder ein OrbiterAnchorPoint + VolumeOffset oder ein OrbiterPoseProvider anstelle von position, offset, offsetType, alignment und elevation. Außerdem wurde der Parameter shouldRenderInNonSpatial entfernt. Wenn der Entwickler nicht möchte, dass der Orbiter in nicht räumlichen Umgebungen gerendert wird, sollte er ihn in eine if-Anweisung einfügen und SpatialCapabilities prüfen. (I9fbb3, b/462428503)
  • Verschiebbare Modifikatoren hinzugefügt. Diese Modifikatoren funktionieren derzeit gut für SpatialPanels und SpatialExternalSurface. Bald werden sie auch für SpatialGltfModels unterstützt. Es ist jedoch geplant, dass diese für alle SubspaceComposables gut unterstützt werden. (I9a3cd, b/479530787, b/478935063, b/478935063)
  • Entwickler müssen den ArDevice.state-Ablauf zur ÜberwachungState.trackingState einhalten und die Darstellung oder Warnungen ihrer Anwendung entsprechend der Tracking-Genauigkeit anpassen. (Ic00f0, b/445466590)
  • Die Enum-Werte HandJointType wurden umbenannt. (Ifbc83, b/482670596)
  • FaceConfidenceRegion-Konstanten wurden umbenannt. (Ia62d5, b/482670596)
  • FaceBlendShapeType-Konstanten wurden umbenannt. (I33b8b, b/482670596)
  • CreatePoseFromGeospatialPoseErrorInternal und CreateGeospatialPoseFromPoseErrorInternal hinzugefügt. (I4bcf1, b/482666615)
  • DeviceTrackingMode.LAST_KNOWN wurde in SPATIAL_LAST_KNOWN umbenannt (mit einem eingestellten Fallback), INERTIAL_LAST_KNOWN für das 3DoF-Tracking wurde hinzugefügt und TRACKING_DEGRADED wurde TrackingState hinzugefügt. (Ie661c, b/445466590)
  • GroupEntity eingestellt. Wenn Sie eine Entity mit nur der grundlegenden Entity-Funktionalität haben möchten, rufen Sie Entity.create auf. Dadurch wird eine Entity-Schnittstelle zurückgegeben. (I4c450, b/473867483)
  • Die XrLog API wurde hinzugefügt. Setzen Sie XrLog.isEnabledauf true, um das Logging in JetpackXR zu aktivieren, und verwenden Sie XrLog.Level, um die Protokollierungsebene festzulegen. (I76a1f, b/463460895, b/487378441)

Fehlerkorrekturen

  • Füge die Unterstützung für den Gerätestatus zur Geräteverfolgung zu den OpenXR-Geräten hinzu. (I91485, b/445466590)

Version 1.0.0-alpha12

25. März 2026

androidx.xr.arcore:arcore-*:1.0.0-alpha12 ist veröffentlicht. Version 1.0.0-alpha12 enthält diese Commits.

API-Änderungen

  • Config.augmentedObjectCategories wurde von einer Liste in ein Set geändert. (I25a64, b/487376359)
  • Die Typen androidx.xr.arcore.Eye und androidx.xr.arcore.Hand. (I42438, b/449032900)
  • Die Überladung Session.create wurde hinzugefügt, um die Übergabe eines Android-Kontexts für die Ressourcenbereichsbegrenzung zu ermöglichen. (I7d3fe, b/415805990, b/477386334)
  • Ändert FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMIT in FakeRuntimeAnchor.anchorResourceLimit. (I90841, b/431992235)
  • Die TiltGesture API wird als experimentell eingestuft, da sie in Zukunft geändert oder entfernt werden kann. Wenn Sie diese API verwenden möchten, aktivieren Sie @ExperimentalGesturesApi (Ic9858).
  • Es wurde die Möglichkeit hinzugefügt, Kategorien für das AugmentedObject-Tracking in der Konfiguration festzulegen (I1f6e4, b/480220930).

Fehlerkorrekturen

  • Der Chrome-Build wurde korrigiert, indem die Datei META-INF/services/ mit dem tatsächlichen Speicherort von PerceptionRuntimeFactory aktualisiert wurde. (I7a801, b/481288291)

Version 1.0.0-alpha11

25. Februar 2026

androidx.xr.arcore:arcore-*:1.0.0-alpha11 ist veröffentlicht. Version 1.0.0-alpha11 enthält diese Commits.

Version 1.0.0-alpha10

28. Januar 2026

androidx.xr.arcore:arcore-*:1.0.0-alpha10 ist veröffentlicht. Version 1.0.0-alpha10 enthält diese Commits.

Neue Funktionen

  • Die TiltGesture API wird eingeführt, die eine reaktive Flow für die stabile Erkennung des Geräteneigungsstatus (UP/DOWN) mit Übergangsprozess bietet. (Ic269f, b/448152779)
  • ARCore für Jetpack XR verwendet jetzt den XR Runtime Logging-Mechanismus. Weitere Informationen finden Sie unter androidx.xr.runtime.Log. (l52735, b/448697662)

API-Änderungen

  • Geospatial.createPoseFromGeospatialPose funktioniert jetzt auf OpenXR-kompatiblen Geräten. (l362c6)

Version 1.0.0-alpha09

3. Dezember 2025

androidx.xr.arcore:arcore-*:1.0.0-alpha09 ist veröffentlicht. Version 1.0.0-alpha09 enthält diese Commits.

Version 1.0.0-alpha08

19. November 2025

androidx.xr.arcore:arcore-*:1.0.0-alpha08 ist veröffentlicht. Version 1.0.0-alpha08 enthält diese Commits.

Neue Funktionen

  • ARCore für Jetpack XR unterstützt jetzt Geräte, auf denen die Google Play-Dienste für AR verfügbar sind.
  • Geospatial APIs für VPS-Verfügbarkeit und Pose-Konvertierung hinzugefügt (I144dc)

Version 1.0.0-alpha07

22. Oktober 2025

androidx.xr.arcore:arcore-*:1.0.0-alpha07 ist veröffentlicht. Version 1.0.0-alpha07 enthält diese Commits.

Fehlerkorrekturen

  • :xr:arcore:arcore-openxr wurde als Implementierungsabhängigkeit zu :xr:arcore:arcore hinzugefügt (I47315, b/446999229)

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 zum xr:arcore:arcore-testing-Modul migriert. (I25469)
  • ArDevice und RenderViewpoint wurden hinzugefügt, damit Anwendungen die Geräteposition und die Displaykonfiguration für das Rendern abrufen können. (Ib7e3f)
  • Benennen Sie HandJointType-Enums mit dem Präfix HAND_JOINT_TYPE_ um. (I3f7cd)
  • HandJointType wurde von xr:runtime:runtime nach xr:arcore:arcore verschoben. (Iadb9c, b/409058039)
  • Hand.State stellt jetzt eine java.nio.FloatBuffer mit den gemeinsamen Posen in einem Format zur Verfügung, 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 für die Verwendung durch Java-Entwickler hinzugefügt wurden. (I083aa, b/427247794)

API-Änderungen

  • Die Config-Werte *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 die xr:arcore:arcore-guava-Bibliothek verwenden, um auf kompatible APIs zuzugreifen. (Iffcb4, b/422773524)
  • Anchor.persistAsync() wurde AnchorGuava zur Verwendung durch Java-Entwickler hinzugefügt. (I4af1c, b/425984631)
  • Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface) wurde EarthGuava zur Verwendung durch Java-Entwickler hinzugefügt. (I66357, b/425992992)
  • Java-Entwickler verwenden die Erweiterungsfunktionen für GltfModel.createAsync in GltfModel.kt. Asynchrone Funktionen in GltfModel 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 für die Verwendung durch Java-Entwickler hinzugefügt wurden. (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 und HandJointType wurden von ARCore zur Laufzeit verschoben.
  • Hand.State.isActive (boolean) wurde in Hand.State.trackingState (androidx.xr.runtime.TrackingState) geändert.
  • Anchor.load gibt Anchor.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 und Hand.right, um auf die Tracking-Informationen zuzugreifen.
  • APIs, die einen Anker generieren (Anchor.create, Anchor.load, Plane.createAnchor), geben jetzt alle AnchorCreateResult zurück und implementieren AnchorCreateResourcesExhausted korrekt.

Diverse Fehlerkorrekturen

  • Anchor.detach führt nicht mehr zu einem schwerwiegenden Absturz aufgrund einer Race-Bedingung 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 ersten Version

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 unter anderem Funktionen für die Bewegungserkennung, persistente Anker, Hit-Tests und die Erkennung von Ebenen mit semantischer Kennzeichnung (z. B. Boden, Wände und Tischplatten). Entwicklerleitfaden

  • Session: ARCore für Jetpack XR nutzt die Jetpack XR-Laufzeit, um seine Funktionen zu ermöglichen. Für die meisten ARCore für Jetpack XR-APIs benötigen Sie eine Sitzung. Sehen Sie sich daher die Dokumentation dazu an.

  • Plane: Mit Ebenen können Sie die Welt um sich herum besser verstehen. Jede Ebene hat ein Label, das sie semantisch beschreibt. Mit subscribe können Sie sich über die zuletzt erkannten Flugzeuge benachrichtigen lassen und mit state über Änderungen an einem bestimmten Flugzeug.

  • Anchor: Eine Verknüpfung zwischen einem virtuellen Objekt und einem realen Ort. Anker können an einer bestimmten Stelle im Raum (mit create) oder an einem Trackable (mit createAnchor) angebracht werden.

    • Anker können sitzungsübergreifend wiederverwendet werden. Sie können persist verwenden, um sie zu speichern, getPersistedAnchorUuids, um sie aufzulisten, und load, 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 mit getAnchor den zugehörigen Anker abrufen.

    • Bieten Sie natürliche Nutzerinteraktionen mit hitTest. Bei einem Hit-Test wird ein Ray verwendet, um zu ermitteln, welche Inhalte es schneidet, und um an dieser Stelle ein Anchor zu erstellen. Führen Sie einen Hit-Test über ein InputEvent aus.

Bekannte Probleme

  • Zwischen dem Aufrufen von unpersist und dem Entfernen der zugehörigen UUID aus den Ergebnissen, die von getPersistedAnchorUuids zurückgegeben werden, kann es zu einer Verzögerung kommen.

  • Mit create wird nicht geprüft, ob das System genügend Ressourcen hat, um neue Anker zurückzugeben. Wenn Sie zu viele Anker erstellen, kann das zu einem Absturz führen.

  • 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 tatsächlichen 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 eine RuntimeException ausgelöst werden. In diesen Fällen ist die Funktion trotzdem erfolgreich und der Anker wird gespeichert. Als Workaround empfehlen wir, den Aufruf von persist in einen try-Block einzuschließen.