ARCore per Jetpack XR

Porta i contenuti digitali nel mondo reale con le funzionalità di percezione.
Ultimo aggiornamento Release stabile Candidato per la release Versione beta Versione alpha
12 dicembre 2024 - - - 1.0.0-alpha01

Dichiarazione delle dipendenze

Per aggiungere una dipendenza da ARCore per Jetpack XR, devi aggiungere il repository Maven di Google al tuo progetto. Per ulteriori informazioni, consulta il repository Maven di Google.

Aggiungi le dipendenze per gli elementi necessari nel file build.gradle per la tua app o il tuo modulo:

Groovy

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

Kotlin

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

Per ulteriori informazioni sulle dipendenze, consulta Aggiungere dipendenze di compilazione.

Feedback

Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa raccolta. Prima di crearne uno nuovo, dai un'occhiata ai problemi esistenti in questa raccolta. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.

Creare un nuovo problema

Per ulteriori informazioni, consulta la documentazione del Monitoraggio problemi.

Versione 1.0

Versione 1.0.0-alpha01

12 dicembre 2024

androidx.xr.arcore:arcore-* 1.0.0-alpha01 viene rilasciato.

Funzionalità della versione iniziale

Ispirata alla libreria ARCore esistente, la libreria ARCore per Jetpack XR offre funzionalità per integrare i contenuti digitali con il mondo reale. Questa libreria include il monitoraggio dei movimenti, gli ancoraggi permanenti, i test di corrispondenza e l'identificazione dei piani con etichettatura semantica (ad esempio pavimento, pareti e piani dei tavoli). Consulta la guida per gli sviluppatori per scoprire di più sull'utilizzo di ARCore per Jetpack XR.

  • Session: ARCore per Jetpack XR utilizza il runtime Jetpack XR per potenziare le sue funzionalità. Utilizzerai una sessione per interagire con la maggior parte delle API ARCore per Jetpack XR, quindi dai un'occhiata alla relativa documentazione.

  • Plane: utilizza i piani per comprendere il mondo che ti circonda. Ogni piano ha un Label che lo descrive semanticamente. Puoi utilizzare subscribe per ricevere una notifica sugli ultimi piani rilevati o state per ricevere una notifica sulle modifiche a un piano specifico.

  • Anchor: un collegamento tra un oggetto virtuale e una posizione reale. Le ancore possono essere collegate a una posizione specifica nello spazio (utilizzando create) o a un Trackable (utilizzando createAnchor).

    • Le ancore possono essere riutilizzate in più sessioni. Puoi utilizzare persist per archiviarli, getPersistedAnchorUuids per enumerarli e load per recuperarli. Assicurati di unpersist le licenze quando non sono più in uso.

    • Le ancore sono interoperabili tra ARCore per Jetpack XR e Jetpack SceneCore. Puoi creare un AnchorEntity utilizzando un'ancora o, se hai già un'entità Anchor, puoi utilizzare getAnchor per recuperare l'ancora di supporto.

    • Offri interazioni naturali con gli utenti utilizzando hitTest. Un hitTest utilizza un Ray per determinare quali contenuti interseca e per creare un Anchor da quella posizione. Valuta la possibilità di eseguire un hitTest da un InputEvent.

Problemi noti

  • Potrebbe esserci un ritardo tra la chiamata a unpersist e la rimozione del relativo UUID dai risultati restituiti da getPersistedAnchorUuids.

  • create non convaliderà il fatto che il sistema disponga di risorse sufficienti per restituire nuovi ancoranti. La creazione di un numero eccessivo di ancore potrebbe causare un arresto anomalo.

  • Al momento non è supportata la persistenza di un'ancora che è stata precedentemente impostata come persistente e non persistente.

  • L'utilizzo nell'emulatore è supportato, ma il comportamento potrebbe non essere così stabile come quando viene eseguito su un dispositivo reale. In particolare, le chiamate a create potrebbero non riuscire con un errore di codice nativo e terminare immediatamente l'attività.

  • In alcuni casi, potrebbe essere generato erroneamente un RuntimeException quando viene chiamata persist con il messaggio "L'ancora non è stata mantenuta". In questi casi, la funzione andrà comunque a buon fine e l'ancora verrà mantenuta. Come soluzione alternativa, ti consigliamo di racchiudere la chiamata a persist in un blocco try.