ARCore für Jetpack XR

Digitale Inhalte mit Wahrnehmungsfunktionen in die reale Welt bringen
Letzte Aktualisierung Stabile Release Releasekandidat Beta-Release Alpha-Release
06.05.2026 - - - 1.0.0-alpha13

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:

Groovy

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

Kotlin

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

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-alpha13

06.05.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 das 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 Bibliothek xr:runtime:runtime 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 eingestellt. Verwenden Sie stattdessen androidx.xr.runtime.math.FieldOfView. (Ia01a0, b/480233045)
  • Orbiter wurde so geändert, dass entweder ein OrbiterAnchorPoint + VolumeOffset oder ein OrbiterPoseProvider anstelle von Position, Offset, OffsetType, Ausrichtung und Höhe verwendet wird. 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 einschließen und die SpatialCapabilities prüfen. (I9fbb3, b/462428503)
  • Verschiebbare Modifikatoren wurden hinzugefügt. Diese Modifikatoren funktionieren derzeit gut für SpatialPanels und SpatialExternalSurface. Sehr bald werden sie auch für SpatialGltfModels unterstützt. Es ist jedoch geplant, dass sie für alle SubspaceComposables gut unterstützt werden. (I9a3cd, b/479530787, b/478935063, b/478935063)
  • Entwickler müssen den ArDevice.state-Flow beobachten, um State.trackingState zu überwachen und die Rendering- oder Warnmeldungen ihrer Anwendung entsprechend der Tracking-Genauigkeit anzupassen. (Ic00f0, b/445466590)
  • Die Enum-Werte von HandJointType wurden umbenannt. (Ifbc83, b/482670596)
  • Die Konstanten von FaceConfidenceRegion wurden umbenannt. (Ia62d5, b/482670596)
  • Die Konstanten von FaceBlendShapeType wurden umbenannt. (I33b8b, b/482670596)
  • CreatePoseFromGeospatialPoseErrorInternal und CreateGeospatialPoseFromPoseErrorInternal wurden hinzugefügt. (I4bcf1, b/482666615)
  • DeviceTrackingMode.LAST_KNOWN wurde in SPATIAL_LAST_KNOWN umbenannt (mit einem veralteten Fallback), INERTIAL_LAST_KNOWN für das 3DoF-Tracking wurde hinzugefügt und TRACKING_DEGRADED wurde zu TrackingState hinzugefügt. (Ie661c, b/445466590)
  • GroupEntity wurde eingestellt. Wenn Sie eine Entität mit nur der grundlegenden Entitätsfunktionalität benötigen, rufen Sie Entity.create auf, das eine Entitätsschnittstelle zurückgibt. (I4c450, b/473867483)
  • Die XrLog API wurde hinzugefügt. Setzen Sie XrLog.isEnabled auf true, um das Logging in Jetpack XR zu aktivieren, und verwenden Sie XrLog.Level, um die Protokollebene festzulegen. (I76a1f, b/463460895, b/487378441)

Diverse Fehlerkorrekturen

  • Unterstützung für den Gerätestracking-Status für OpenXR-Geräte hinzugefügt. (I91485, b/445466590)

Version 1.0.0-alpha12

25.03.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 einen Android-Kontext für die Ressourcenbereichsverwaltung zu übergeben. (I7d3fe, b/415805990, b/477386334)
  • FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMIT wurde in FakeRuntimeAnchor.anchorResourceLimit geändert. (I90841, b/431992235)
  • Die TiltGesture API wird als experimentell gekennzeichnet, da sie in Zukunft geändert oder entfernt werden kann. Wenn Sie diese API verwenden möchten, aktivieren Sie @ExperimentalGesturesApi (Ic9858)
  • Die Möglichkeit, Kategorien für das AugmentedObject Tracking in der Konfiguration festzulegen, wurde hinzugefügt (I1f6e4, b/480220930).

Diverse 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.02.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.01.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 wurde eingeführt, die einen reaktiven Flow für die stabile Erkennung des Geräteneigungsstatus (nach oben/unten) mit Übergangsfortschritt 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-fähigen Geräten. (l362c6)

Version 1.0.0-alpha09

03.12.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.11.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 Google Play-Dienste für AR verfügbar sind.
  • Geospatial APIs für VPS-Verfügbarkeit und Posenkonvertierung hinzugefügt (I144dc)

Version 1.0.0-alpha07

22.10.2025

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

Diverse Fehlerkorrekturen

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

Version 1.0.0-alpha06

24.09.2025

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

API-Änderungen

  • Die Testunterstützung für ARCore wurde zum Modul xr:arcore:arcore-testing migriert. (I25469)
  • ArDevice und RenderViewpoint hinzugefügt, damit Anwendungen die Gerätepose und die Anzeigekonfiguration für Rendering-Zwecke abrufen können. (Ib7e3f)
  • Die Enums von HandJointType wurden mit dem Präfix HAND_JOINT_TYPE_ umbenannt. (I3f7cd)
  • HandJointType wurde von xr:runtime:runtime nach xr:arcore:arcore verschoben. (Iadb9c, b/409058039)
  • Hand.State stellt jetzt einen java.nio.FloatBuffer mit den Gelenkposen in einem Format bereit, das einen einfachen Zugriff auf leistungsorientierte Anwendungen ermöglicht. (I55e27)

Version 1.0.0-alpha05

30.07.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

  • getPrimaryHandSide hinzugefügt, damit der Entwickler die Informationen zur Handseite abrufen kann (I270bd)
  • Geospatial API für die VPS-Verfügbarkeit hinzugefügt (I58573)
  • ARCore API für checkVpsAvailability (Idbded) hinzugefügt
  • Die Erweiterungsfunktionen stateFlowable wurden zu :xr:arcore:arcore-rxjava3 hinzugefügt, damit sie von Java-Entwicklern verwendet werden können. (I083aa, b/427247794)

API-Änderungen

  • Die *Mode-Werte der Konfiguration wurden umbenannt, um ihr Verhalten widerzuspiegeln. (I6d247, b/414648065)
  • Das Hauptartefakt von ARCore (xr:arcore:arcore) enthält nur asynchrone APIs im Kotlin-Stil. Java-Entwickler können von der Bibliothek xr:arcore:arcore-rxjava3 abhängen, um auf kompatible APIs zuzugreifen. (Ia525e, b/422794329)
  • Das Hauptartefakt von ARCore (xr:scenecore:scenecore) enthält nur asynchrone APIs im Kotlin-Stil. Java-Entwickler können von der Bibliothek xr:arcore:arcore-guava abhängen, um auf kompatible APIs zuzugreifen. (Iffcb4, b/422773524)
  • Anchor.persistAsync() wurde zu AnchorGuava hinzugefügt, damit es von Java-Entwicklern verwendet werden kann. (I4af1c, b/425984631)
  • Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface) wurde zu EarthGuava hinzugefügt, damit es von Java-Entwicklern verwendet werden kann. (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)
  • Die Erweiterungsfunktionen subscribeAsFlowable wurden zu :xr:arcore:arcore-rxjava3 hinzugefügt, damit sie von Java-Entwicklern verwendet werden können. (Id3e49, b/427277298)

Version 1.0.0-alpha04

07.05.2025

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

API-Änderungen

  • Projekte, die mit Kotlin 2.0 veröffentlicht wurden, erfordern KGP 2.0.0 oder höher. (Idb6b5)
  • TrackingState und HandJointType wurden von ARCore zu Runtime 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.02.2025

androidx.xr.arcore:arcore:1.0.0-alpha03 wurde veröffentlicht. Seit der letzten Alpha-Version gab es keine nennenswerten Änderungen. Version 1.0.0-alpha03 enthält diese Commits.

Version 1.0.0-alpha02

12.02.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 das Hand-Tracking 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.

Fehlerkorrekturen

  • Anchor.detach verursacht nicht mehr einen 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.12.2024

androidx.xr.arcore:arcore-* 1.0.0-alpha01 ist veröffentlicht.

Funktionen der ersten Version

Die ARCore für Jetpack XR-Bibliothek basiert auf der vorhandenen ARCore-Bibliothek und bietet Funktionen zum Einblenden digitaler Inhalte in die reale Welt. Diese Bibliothek umfasst Bewegungserkennung, persistente Anker, Trefferprüfungen und die Erkennung 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 verwendet im Hintergrund die Jetpack XR Runtime, um die 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 an.

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

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

    • Anker können sitzungsübergreifend wiederverwendet werden. Sie können sie mit persist speichern, mit getPersistedAnchorUuids auflisten und mit load abrufen. Achten Sie darauf, dass Sie sie mit unpersist entfernen, wenn sie nicht mehr verwendet werden.

    • Anker sind zwischen ARCore für Jetpack XR und Jetpack SceneCore interoperabel. Sie können eine AnchorEntity mit einem Anker erstellen. Wenn Sie bereits eine AnchorEntity haben, können Sie mit getAnchor den zugrunde liegenden Anker abrufen.

    • Bieten Sie mit hitTest natürliche Nutzerinteraktionen. Bei einem Hit-Test wird ein Ray verwendet, um zu ermitteln, welche Inhalte sich schneiden, und um an diesem Ort einen Anchor zu erstellen. Sie können einen Hit-Test über ein InputEvent durchführen.

Bekannte Probleme

  • Es kann zu einer Verzögerung kommen, bis die UUID nach dem Aufrufen von unpersist aus den Ergebnissen entfernt wird, die von getPersistedAnchorUuids zurückgegeben werden.

  • create wird nicht geprüft, 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 bei der Ausführung auf einem tatsächlichen Gerät. Insbesondere Aufrufe von create können mit einem Fehler im nativen Code fehlschlagen und die Aktivität sofort beenden.

  • Unter bestimmten Umständen kann fälschlicherweise eine RuntimeException ausgelöst werden, wenn persist mit der Meldung „Anchor was not persisted“ aufgerufen wird. In diesen Fällen ist die Funktion trotzdem erfolgreich und der Anker wird gespeichert. Als Problemumgehung empfehlen wir, den Aufruf von persist in einen try-Block einzuschließen.