ARCore per Jetpack XR

Porta i contenuti digitali nel mondo reale con le funzionalità di percezione.
Ultimo aggiornamento Release stabile Candidato per la release Release beta Release alpha
6 maggio 2026 - - - 1.0.0-alpha13

Dichiara le dipendenze

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

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

Groovy

dependencies {
    implementation "androidx.xr.arcore:arcore:1.0.0-alpha13"

    // Optional dependencies for asynchronous conversions
    implementation "androidx.xr.arcore:arcore-guava:1.0.0-alpha13"
    implementation "androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha13"
}

Kotlin

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

    // Optional dependencies for asynchronous conversions
    implementation("androidx.xr.arcore:arcore-guava:1.0.0-alpha13")
    implementation("androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha13")
}

Per saperne di più sulle dipendenze, consulta Aggiungere dipendenze di build.

Feedback

Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa raccolta. Prima di segnalare un nuovo problema, 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.

Crea un nuovo problema

Per saperne di più, consulta la documentazione di Issue Tracker.

Versione 1.0

Versione 1.0.0-alpha13

6 maggio 2026

androidx.xr.arcore:arcore-*:1.0.0-alpha13 è stato rilasciato. La versione 1.0.0-alpha13 contiene questi commit.

Modifiche alle API

  • TrackingState e VpsAvailabilityResult sono stati spostati nel androidx.xr.arcore package e i tipi in androidx.xr.runtime sono ora obsoleti. (Ic7930, b/480462213)
  • Plane.Type è stato rinominato in PlaneType. (I8c90c, b/482675376)
  • Hand.HandSide è stato rinominato in HandSide. (Ica562, b/482675376)
  • Plane.Label è stato rinominato in PlaneLabel. (Ic6b67, b/482675376)
  • Geospatial.Surface è stato rinominato in GeospatialSurface. (I1a8be, b/482675376)
  • Geospatial.State è stato rinominato in GeospatialState. (I203fa, b/482675376)
  • L'API NativeData è stata spostata nella libreria xr:runtime:runtime. (I87954, b/494251500)
  • Session.create e Session.configure non sono più esaustivi e richiedono clausole else nelle istruzioni when. (I9885e, b/495805998, b/495805998)
  • androidx.xr.runtime.FieldOfView è stato deprecato. Utilizza invece androidx.xr.runtime.math.FieldOfView. (Ia01a0, b/480233045)
  • Orbiter è stato modificato in modo da utilizzare un OrbiterAnchorPoint + VolumeOffset o un OrbiterPoseProvider anziché posizione, offset, offsetType, allineamento ed elevazione. È stato rimosso anche il parametro shouldRenderInNonSpatial. Se lo sviluppatore non vuole che l'orbiter venga visualizzato in uno spazio non spaziale, deve racchiuderlo in un'istruzione if e controllare SpatialCapabilities. (I9fbb3, b/462428503)
  • Sono stati aggiunti modificatori mobili. Al momento, questi modificatori funzionano bene per SpatialPanels e SpatialExternalSurface. A breve saranno supportati anche per SpatialGltfModels. Tuttavia, l'intenzione è di supportarli bene per tutti i SubspaceComposables. (I9a3cd, b/479530787, b/478935063, b/478935063)
  • Gli sviluppatori devono osservare il flusso ArDevice.state per monitorare State.trackingState e regolare di conseguenza il rendering o gli avvisi dell'applicazione in base alla fedeltà del monitoraggio. (Ic00f0, b/445466590)
  • I valori enum HandJointType sono stati rinominati. (Ifbc83, b/482670596)
  • Le costanti FaceConfidenceRegion sono state rinominate. (Ia62d5, b/482670596)
  • Le costanti FaceBlendShapeType sono state rinominate. (I33b8b, b/482670596)
  • Sono stati aggiunti CreatePoseFromGeospatialPoseErrorInternal e CreateGeospatialPoseFromPoseErrorInternal. (I4bcf1, b/482666615)
  • DeviceTrackingMode.LAST_KNOWN è stato rinominato in SPATIAL_LAST_KNOWN (con un fallback deprecato), è stato aggiunto INERTIAL_LAST_KNOWN per il monitoraggio 3DoF ed è stato aggiunto TRACKING_DEGRADED a TrackingState. (Ie661c, b/445466590)
  • GroupEntity è stato deprecato. Per avere un'entità con solo la funzionalità di base dell'entità, chiama Entity.create, che restituirà un'interfaccia Entity. (I4c450, b/473867483)
  • È stata aggiunta l'API XrLog. Imposta XrLog.isEnabled su true per abilitare la registrazione nei log in JetpackXR e utilizza XrLog.Level per impostare il livello di log. (I76a1f, b/463460895, b/487378441)

Correzioni di bug

  • È stato aggiunto il supporto dello stato di monitoraggio del dispositivo ai dispositivi OpenXR. (I91485, b/445466590)

Versione 1.0.0-alpha12

25 marzo 2026

androidx.xr.arcore:arcore-*:1.0.0-alpha12 è stato rilasciato. La versione 1.0.0-alpha12 contiene questi commit.

Modifiche alle API

  • Config.augmentedObjectCategories è stato modificato da List a Set. (I25a64, b/487376359)
  • I tipi androidx.xr.arcore.Eye e androidx.xr.arcore.Hand. (I42438, b/449032900)
  • È stato aggiunto l'overload Session.create per consentire il passaggio di un contesto Android per l'ambito delle risorse. (I7d3fe, b/415805990, b/477386334)
  • FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMIT è stato modificato in FakeRuntimeAnchor.anchorResourceLimit. (I90841, b/431992235)
  • L'API TiltGesture è stata resa sperimentale perché potrebbe essere modificata o rimossa in futuro. Per utilizzare questa API, attiva @ExperimentalGesturesApi (Ic9858)
  • È stata aggiunta la possibilità di impostare le categorie per il monitoraggio AugmentedObject nella configurazione (I1f6e4, b/480220930)

Correzioni di bug

  • È stata corretta la build di Chrome aggiornando il file META-INF/services/ con la posizione effettiva di PerceptionRuntimeFactory. (I7a801, b/481288291)

Versione 1.0.0-alpha11

25 febbraio 2026

androidx.xr.arcore:arcore-*:1.0.0-alpha11 è stato rilasciato. La versione 1.0.0-alpha11 contiene questi commit.

Versione 1.0.0-alpha10

28 gennaio 2026

androidx.xr.arcore:arcore-*:1.0.0-alpha10 è stato rilasciato. La versione 1.0.0-alpha10 contiene questi commit.

Nuove funzionalità

  • È stata introdotta l'API TiltGesture, che fornisce un Flow reattivo per il rilevamento stabile dello stato di inclinazione (SU/GIÙ) del dispositivo con l'avanzamento della transizione. (Ic269f, b/448152779)
  • ARCore per Jetpack XR ora utilizza il meccanismo di logging del runtime XR. Per saperne di più, consulta androidx.xr.runtime.Log. (l52735, b/448697662)

Modifiche alle API

  • Geospatial.createPoseFromGeospatialPose ora funziona sui dispositivi con OpenXR. (l362c6)

Versione 1.0.0-alpha09

3 dicembre 2025

androidx.xr.arcore:arcore-*:1.0.0-alpha09 è stato rilasciato. La versione 1.0.0-alpha09 contiene questi commit.

Versione 1.0.0-alpha08

19 novembre 2025

androidx.xr.arcore:arcore-*:1.0.0-alpha08 è stato rilasciato. La versione 1.0.0-alpha08 contiene questi commit.

Nuove funzionalità

  • ARCore per Jetpack XR ora supporta i dispositivi su cui sono disponibili i Servizi Google Play per AR.
  • Sono state aggiunte le API Geospatial per la disponibilità di VPS e la conversione della posa (I144dc)

Versione 1.0.0-alpha07

22 ottobre 2025

androidx.xr.arcore:arcore-*:1.0.0-alpha07 è stato rilasciato. La versione 1.0.0-alpha07 contiene questi commit.

Correzioni di bug

  • :xr:arcore:arcore-openxr è stato aggiunto come dipendenza di implementazione a :xr:arcore:arcore (I47315, b/446999229)

Versione 1.0.0-alpha06

24 settembre 2025

androidx.xr.arcore:arcore-*:1.0.0-alpha06 è stato rilasciato. La versione 1.0.0-alpha06 contiene questi commit.

Modifiche alle API

  • Il supporto per i test di ARCore è stato migrato al modulo xr:arcore:arcore-testing. (I25469)
  • Sono stati aggiunti ArDevice e RenderViewpoint per consentire alle applicazioni di recuperare la posa e la configurazione di visualizzazione del dispositivo a scopo di rendering. (Ib7e3f)
  • I valori enum HandJointType sono stati rinominati con il prefisso HAND_JOINT_TYPE_. (I3f7cd)
  • HandJointType è stato spostato da xr:runtime:runtime a xr:arcore:arcore. (Iadb9c, b/409058039)
  • Hand.State ora espone un java.nio.FloatBuffer con le pose delle giunture in un formato che consente un facile accesso alle applicazioni orientate al rendimento. (I55e27)

Versione 1.0.0-alpha05

30 luglio 2025

androidx.xr.arcore:arcore:1.0.0-alpha05, androidx.xr.arcore:arcore-guava:1.0.0-alpha05 e androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha05 sono stati rilasciati. La versione 1.0.0-alpha05 contiene questi commit.

Nuove funzionalità

  • È stato aggiunto getPrimaryHandSide per consentire allo sviluppatore di ottenere le informazioni sul lato della mano (I270bd)
  • È stata aggiunta l'API di controllo della disponibilità di VPS Geospatial (I58573)
  • È stata aggiunta l'API ARCore per checkVpsAvailability (Idbded)
  • Sono state aggiunte le funzioni di estensione stateFlowable a :xr:arcore:arcore-rxjava3 per l'utilizzo da parte degli sviluppatori Java. (I083aa, b/427247794)

Modifiche alle API

  • I valori di configurazione *Mode sono stati rinominati per riflettere il loro comportamento. (I6d247, b/414648065)
  • L'artefatto ARCore principale (xr:arcore:arcore) conterrà solo API asincrone in stile Kotlin. Gli sviluppatori Java possono dipendere dalla libreria xr:arcore:arcore-rxjava3 per accedere alle API compatibili. (Ia525e, b/422794329)
  • L'artefatto ARCore principale (xr:scenecore:scenecore) conterrà solo API asincrone in stile Kotlin. Gli sviluppatori Java possono dipendere dalla libreria xr:arcore:arcore-guava per accedere alle API compatibili. (Iffcb4, b/422773524)
  • Anchor.persistAsync() è stato aggiunto a AnchorGuava per l'utilizzo da parte degli sviluppatori Java. (I4af1c, b/425984631)
  • Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface) è stato aggiunto a EarthGuava per l'utilizzo da parte degli sviluppatori Java. (I66357, b/425992992)
  • Gli sviluppatori Java utilizzeranno le funzioni di estensione per GltfModel.createAsync in GltfModel.kt. Le funzioni asincrone in GltfModel verranno eliminate. (I0af60)
  • Questa libreria ora utilizza le annotazioni di nullabilità JSpecify, che sono di tipo-uso. Gli sviluppatori Kotlin devono utilizzare il seguente argomento del compilatore per applicare l'utilizzo corretto: -Xjspecify-annotations=strict (questo è il valore predefinito a partire dalla versione 2.1.0 del compilatore Kotlin) (Ia8420, b/326456246)
  • Sono state aggiunte le funzioni di estensione subscribeAsFlowable a :xr:arcore:arcore-rxjava3 per l'utilizzo da parte degli sviluppatori Java. (Id3e49, b/427277298)

Versione 1.0.0-alpha04

7 maggio 2025

androidx.xr.arcore:arcore:1.0.0-alpha04 è stato rilasciato. La versione 1.0.0-alpha04 contiene questi commit.

Modifiche alle API

  • I progetti rilasciati con Kotlin 2.0 richiedono l'utilizzo di KGP 2.0.0 o versioni successive. (Idb6b5)
  • TrackingState e HandJointType sono stati spostati da ARCore a Runtime.
  • Hand.State.isActive (boolean) è stato modificato in Hand.State.trackingState (androidx.xr.runtime.TrackingState).
  • Anchor.load restituisce Anchor.AnchorLoadInvalidUuid se l'UUID non è valido.

Versione 1.0.0-alpha03

26 febbraio 2025

androidx.xr.arcore:arcore:1.0.0-alpha03 è stato rilasciato senza modifiche significative rispetto all'ultima versione alpha. La versione 1.0.0-alpha03 contiene questi commit.

Versione 1.0.0-alpha02

12 febbraio 2025

androidx.xr.arcore:arcore:1.0.0-alpha02 è stato rilasciato. La versione 1.0.0-alpha02 contiene questi commit.

Nuove funzionalità

  • È stato aggiunto il supporto per il tracciamento delle mani. Utilizza Hand.left e Hand.right per accedere alle informazioni di monitoraggio.
  • Le API che generano un'ancora (Anchor.create, Anchor.load, Plane.createAnchor) ora restituiscono tutte AnchorCreateResult e implementano correttamente AnchorCreateResourcesExhausted.

Correzioni di bug

  • Anchor.detach non causa più un arresto anomalo irreversibile a causa di una condizione di race con il thread di aggiornamento della sessione.
  • Anchor.create è più stabile quando viene eseguito su un emulatore

Versione 1.0.0-alpha01

12 dicembre 2024

androidx.xr.arcore:arcore-* 1.0.0-alpha01 è stato rilasciato.

Funzionalità della release iniziale

Ispirata alla libreria ARCore esistente, la libreria ARCore per Jetpack XR offre funzionalità per la fusione di contenuti digitali con il mondo reale. Questa libreria include il rilevamento del movimento, le ancore persistenti, l'hit test e l'identificazione del piano con etichettatura semantica (ad esempio pavimento, pareti e piani di tavoli). Per saperne di più sull'utilizzo di ARCore per Jetpack XR, consulta la guida per gli sviluppatori.

  • Session: ARCore per Jetpack XR utilizza Jetpack XR Runtime in background per alimentare 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 nel mondo 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 memorizzarle, getPersistedAnchorUuids per enumerarle e load per recuperarle. Assicurati di eseguire unpersist una volta che non sono più in uso.

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

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

Problemi noti di

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

  • create non convaliderà se il sistema dispone di risorse sufficienti per restituire nuove ancore. La creazione di una quantità eccessiva di ancore potrebbe causare un arresto anomalo.

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

  • L'utilizzo nell'emulatore è supportato, ma il comportamento potrebbe non essere 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 interrompere immediatamente l'attività.

  • In alcune circostanze, potrebbe essere generato erroneamente un RuntimeException quando si chiama persist con il messaggio "Anchor was not persisted". In queste circostanze, la funzione avrà comunque esito positivo e l'ancora verrà resa persistente. Come soluzione alternativa, ti consigliamo di racchiudere la chiamata a persist con un blocco try.