ARCore für Jetpack XR
| 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.
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
TrackingStateundVpsAvailabilityResultwurden in dasandroidx.xr.arcore packageverschoben und die Typen inandroidx.xr.runtimesind jetzt veraltet. (Ic7930, b/480462213)Plane.Typewurde inPlaneTypeumbenannt. (I8c90c, b/482675376)Hand.HandSidewurde inHandSideumbenannt. (Ica562, b/482675376)Plane.Labelwurde inPlaneLabelumbenannt. (Ic6b67, b/482675376)Geospatial.Surfacewurde inGeospatialSurfaceumbenannt. (I1a8be, b/482675376)Geospatial.Statewurde inGeospatialStateumbenannt. (I203fa, b/482675376)- Die
NativeDataAPI wurde in die Bibliothekxr:runtime:runtimeverschoben. (I87954, b/494251500) Session.createundSession.configuresind jetzt nicht mehr erschöpfend und erfordern else-Klauseln in when-Anweisungen. (I9885e, b/495805998, b/495805998)androidx.xr.runtime.FieldOfViewwurde eingestellt. Verwenden Sie stattdessenandroidx.xr.runtime.math.FieldOfView. (Ia01a0, b/480233045)- Orbiter wurde so geändert, dass entweder ein
OrbiterAnchorPoint + VolumeOffsetoder einOrbiterPoseProvideranstelle von Position, Offset, OffsetType, Ausrichtung und Höhe verwendet wird. Außerdem wurde der ParametershouldRenderInNonSpatialentfernt. 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 dieSpatialCapabilitiesprüfen. (I9fbb3, b/462428503) - Verschiebbare Modifikatoren wurden hinzugefügt. Diese Modifikatoren funktionieren derzeit gut für
SpatialPanelsundSpatialExternalSurface. Sehr bald werden sie auch fürSpatialGltfModelsunterstützt. Es ist jedoch geplant, dass sie für alleSubspaceComposablesgut unterstützt werden. (I9a3cd, b/479530787, b/478935063, b/478935063) - Entwickler müssen den
ArDevice.state-Flow beobachten, umState.trackingStatezu überwachen und die Rendering- oder Warnmeldungen ihrer Anwendung entsprechend der Tracking-Genauigkeit anzupassen. (Ic00f0, b/445466590) - Die Enum-Werte von
HandJointTypewurden umbenannt. (Ifbc83, b/482670596) - Die Konstanten von
FaceConfidenceRegionwurden umbenannt. (Ia62d5, b/482670596) - Die Konstanten von
FaceBlendShapeTypewurden umbenannt. (I33b8b, b/482670596) CreatePoseFromGeospatialPoseErrorInternalundCreateGeospatialPoseFromPoseErrorInternalwurden hinzugefügt. (I4bcf1, b/482666615)DeviceTrackingMode.LAST_KNOWNwurde inSPATIAL_LAST_KNOWNumbenannt (mit einem veralteten Fallback),INERTIAL_LAST_KNOWNfür das 3DoF-Tracking wurde hinzugefügt undTRACKING_DEGRADEDwurde zuTrackingStatehinzugefügt. (Ie661c, b/445466590)GroupEntitywurde eingestellt. Wenn Sie eine Entität mit nur der grundlegenden Entitätsfunktionalität benötigen, rufen SieEntity.createauf, das eine Entitätsschnittstelle zurückgibt. (I4c450, b/473867483)- Die
XrLogAPI wurde hinzugefügt. Setzen SieXrLog.isEnabledauftrue, um das Logging in Jetpack XR zu aktivieren, und verwenden SieXrLog.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.augmentedObjectCategorieswurde von einer Liste in ein Set geändert. (I25a64, b/487376359)- Die Typen
androidx.xr.arcore.Eyeundandroidx.xr.arcore.Hand. (I42438, b/449032900) - Die Überladung
Session.createwurde hinzugefügt, um einen Android-Kontext für die Ressourcenbereichsverwaltung zu übergeben. (I7d3fe, b/415805990, b/477386334) FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMITwurde inFakeRuntimeAnchor.anchorResourceLimitgeändert. (I90841, b/431992235)- Die
TiltGestureAPI 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
AugmentedObjectTracking 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
PerceptionRuntimeFactoryaktualisiert 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
TiltGestureAPI wurde eingeführt, die einen reaktivenFlowfü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.createPoseFromGeospatialPosefunktioniert 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
ARCorefü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-openxrals Implementierungsabhängigkeit zu:xr:arcore:arcorehinzugefü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
ARCorewurde zum Modulxr:arcore:arcore-testingmigriert. (I25469) ArDeviceundRenderViewpointhinzugefügt, damit Anwendungen die Gerätepose und die Anzeigekonfiguration für Rendering-Zwecke abrufen können. (Ib7e3f)- Die Enums von
HandJointTypewurden mit dem PräfixHAND_JOINT_TYPE_umbenannt. (I3f7cd) HandJointTypewurde vonxr:runtime:runtimenachxr:arcore:arcoreverschoben. (Iadb9c, b/409058039)Hand.Statestellt jetzt einenjava.nio.FloatBuffermit 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
getPrimaryHandSidehinzugefü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
stateFlowablewurden zu:xr:arcore:arcore-rxjava3hinzugefü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-rxjava3abhä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 Bibliothekxr:arcore:arcore-guavaabhängen, um auf kompatible APIs zuzugreifen. (Iffcb4, b/422773524) Anchor.persistAsync()wurde zuAnchorGuavahinzugefügt, damit es von Java-Entwicklern verwendet werden kann. (I4af1c, b/425984631)Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface)wurde zuEarthGuavahinzugefügt, damit es von Java-Entwicklern verwendet werden kann. (I66357, b/425992992)- Java-Entwickler verwenden die Erweiterungsfunktionen für
GltfModel.createAsyncinGltfModel.kt. Asynchrone Funktionen inGltfModelwerden 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
subscribeAsFlowablewurden zu:xr:arcore:arcore-rxjava3hinzugefü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)
TrackingStateundHandJointTypewurden von ARCore zu Runtime verschoben.Hand.State.isActive (boolean)wurde inHand.State.trackingState (androidx.xr.runtime.TrackingState)geändert.Anchor.loadgibtAnchor.AnchorLoadInvalidUuidzurü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.leftundHand.right, um auf die Tracking-Informationen zuzugreifen. - APIs, die einen Anker generieren (
Anchor.create,Anchor.load,Plane.createAnchor), geben jetzt alleAnchorCreateResultzurück und implementierenAnchorCreateResourcesExhaustedkorrekt.
Fehlerkorrekturen
Anchor.detachverursacht nicht mehr einen schwerwiegenden Absturz aufgrund einer Race-Bedingung mit dem Thread für die Sitzungsaktualisierung.Anchor.createist 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 einLabel, das sie semantisch beschreibt. Mitsubscribekönnen Sie sich über die neuesten erkannten Ebenen benachrichtigen lassen oder mitstateü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 (mitcreate) oder an einemTrackable(mitcreateAnchor) angebracht werden.Anker können sitzungsübergreifend wiederverwendet werden. Sie können sie mit
persistspeichern, mitgetPersistedAnchorUuidsauflisten und mitloadabrufen. Achten Sie darauf, dass Sie sie mitunpersistentfernen, wenn sie nicht mehr verwendet werden.Anker sind zwischen ARCore für Jetpack XR und Jetpack SceneCore interoperabel. Sie können eine
AnchorEntitymit einem Anker erstellen. Wenn Sie bereits eine AnchorEntity haben, können Sie mitgetAnchorden zugrunde liegenden Anker abrufen.Bieten Sie mit
hitTestnatürliche Nutzerinteraktionen. Bei einem Hit-Test wird einRayverwendet, um zu ermitteln, welche Inhalte sich schneiden, und um an diesem Ort einenAnchorzu erstellen. Sie können einen Hit-Test über einInputEventdurchführen.
Bekannte Probleme
Es kann zu einer Verzögerung kommen, bis die UUID nach dem Aufrufen von
unpersistaus den Ergebnissen entfernt wird, die vongetPersistedAnchorUuidszurückgegeben werden.createwird 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
createkönnen mit einem Fehler im nativen Code fehlschlagen und die Aktivität sofort beenden.Unter bestimmten Umständen kann fälschlicherweise eine
RuntimeExceptionausgelöst werden, wennpersistmit 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 vonpersistin einentry-Block einzuschließen.