ARCore für Jetpack XR

Mit Wahrnehmungsfunktionen digitale Inhalte in die reale Welt einblenden
Letzte Aktualisierung Stabile Version Releasekandidat Beta-Ausgabe Alpharelease
30. Juli 2025 - - 1.0.0-alpha05

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-alpha05"
}

Kotlin

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

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 abstimmen, indem Sie auf die Schaltfläche mit dem Stern klicken.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zur Problemverfolgung.

Version 1.0

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 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-Nullable-Annotationen 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 wird 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 wird 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.

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 wird 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 for 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 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 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 aufzählen und mit load abrufen. 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.

    • Natürliche Nutzerinteraktionen mit hitTest ermöglichen 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.

  • 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 eine RuntimeException 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 von persist in einen try-Block einzuschließen.