ARCore für Jetpack XR

Mit Wahrnehmungsfunktionen digitale Inhalte in die reale Welt bringen
Letzte Aktualisierung Stabile Version Release Candidate Beta-Ausgabe Alphaversion
12. Dezember 2024 - - 1.0.0-alpha01

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-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 Einbetten 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. unpersist Sie, 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 ermitteln, 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 wird beim Aufruf von persist möglicherweise fälschlicherweise eine RuntimeException mit der Meldung „Der Anker wurde nicht beibehalten“ ausgegeben. In diesem Fall wird die Funktion trotzdem ausgeführt und der Anker beibehalten. Wir empfehlen als Problemumgehung, den Aufruf von persist in einen try-Block einzufügen.