ARCore für Jetpack XR

Mit Wahrnehmungsfunktionen digitale Inhalte in die reale Welt bringen
Letzte Aktualisierung Stabile Version Release-Kandidat Beta-Ausgabe Alphaversion
12. Februar 2025 - - 1.0.0-alpha02

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 erforderlichen Artefakte hinzu:

Cool

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

Kotlin

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

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

Feedback

Ihr Feedback hilft uns, Jetpack zu verbessern. Bitte teilen Sie uns mit, wenn Sie neue Probleme feststellen 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 einem vorhandenen Problem Ihre Stimme geben, indem Sie auf die Schaltfläche mit dem Stern klicken.

Neues Problem erstellen

Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.

Version 1.0

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. Mit Hand.left und Hand.right können Sie auf die Tracking-Informationen zugreifen.
  • APIs, die einen Anker generieren (Anchor.create, Anchor.load, Plane.createAnchor), geben jetzt alle AnchorCreateResult zurück und implementieren AnchorCreateResourcesExhausted ordnungsgemäß.

Fehlerkorrekturen

  • Anchor.detach führt aufgrund einer Race-Condition mit dem Sitzungsaktualisierungs-Thread nicht mehr zu einem schwerwiegenden Absturz.
  • Anchor.create ist stabiler, wenn es in 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 Erstversion

Die ARCore for Jetpack XR-Bibliothek wurde von der ARCore-Bibliothek inspiriert und bietet Funktionen zum Einbinden digitaler Inhalte in die reale Welt. Diese Bibliothek umfasst Bewegungsverfolgung, persistente Anker, Treffertests und die ebenene Identifikation mit semantischen Labels (z. B. Boden, Wände und Tischplatten). Weitere Informationen zur Arbeit mit 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. Lesen Sie sich daher die entsprechende Dokumentation durch.

  • Plane: Mit Ebenen die Welt um Sie herum besser verstehen. Jede Ebene hat einen Label, der sie semantisch beschreibt. Mit subscribe werden Sie über die zuletzt erkannten Flugzeuge benachrichtigt. Mit state werden Sie über Änderungen an einem bestimmten Flugzeug benachrichtigt.

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

    • Anker können sitzungsübergreifend wiederverwendet werden. Sie können sie mit persist speichern, mit getPersistedAnchorUuids aufzählen und mit load abrufen. Denken Sie daran, sie zu unpersist, sobald sie nicht mehr verwendet werden.

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

    • Bieten Sie mit hitTest natürliche Nutzerinteraktionen. Bei einem HitTest wird ein Ray verwendet, um zu bestimmen, mit welchen Inhalten er sich überschneidet, und an dieser Stelle einen Anchor zu erstellen. Sie können einen HitTest von einem InputEvent aus durchführen.

Bekannte Probleme

  • Zwischen dem Aufruf von unpersist und dem Entfernen der UUID aus den von getPersistedAnchorUuids zurückgegebenen Ergebnissen 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. Das Erstellen einer übermäßigen Anzahl von Ankern kann zu einem Absturz führen.

  • Das Speichern eines Ankers, der zuvor gespeichert und wieder gelöscht 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 echten Gerät. Insbesondere Aufrufe von create können mit einem Native-Code-Fehler fehlschlagen und die Aktivität sofort beenden.

  • Unter bestimmten Umständen kann beim Aufruf von persist fälschlicherweise eine RuntimeException mit der Meldung „Der Anker wurde nicht gespeichert“ ausgegeben werden. In diesem Fall wird die Funktion trotzdem ausgeführt und der Anker wird gespeichert. Wir empfehlen als Problemumgehung, den Aufruf von persist in einen try-Block einzufügen.