ARCore per Jetpack XR
| Ultimo aggiornamento | Release stabile | Candidato per la release | Release beta | Release alpha |
|---|---|---|---|---|
| 7 ottobre 2026 | - | 1.0.0-rc02 | - | - |
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:
Alla moda
dependencies { implementation "androidx.xr.arcore:arcore:1.0.0-rc02" }
Kotlin
dependencies { implementation("androidx.xr.arcore:arcore:1.0.0-rc02") }
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.
Per saperne di più, consulta la documentazione di Issue Tracker.
Versione 1.0
Versione 1.0.0-rc02
7 ottobre 2026
androidx.xr.arcore:arcore-*:1.0.0-rc02 è stato rilasciato. La versione 1.0.0-rc02 contiene questi commit.
Correzioni di bug
- Risolto un problema per cui
OpenXrRuntimenon riusciva a configurare la sessione quando il rilevamento delle immagini aumentate non era supportato. (I8b9759) - Sono stati risolti diversi problemi, tra cui: gestione della memoria migliorata in
XrInstanceManagerutilizzandoapplicationContext, risoluzione di potenziali problemi relativi al ciclo di vita semplificando i meccanismi di memorizzazione nella cacheSessioneScenee miglioramento diReferenceCleanerper garantire registrazioni di pulizia thread-safe e eliminazioni esplicite. (Id0b76c)
Versione 1.0.0-rc01
9 settembre 2026
androidx.xr.arcore:arcore-*:1.0.0-rc01 è stato rilasciato. La versione 1.0.0-rc01 contiene questi commit.
Versione 1.0.0-beta02
12 agosto 2026
androidx.xr.arcore:arcore-*:1.0.0-beta02 è stato rilasciato. La versione 1.0.0-beta02 contiene questi commit.
Correzioni di bug
- Risolto il problema di concorrenza nella persistenza dell'ancora
OpenXR. (I15c8b) - È stato implementato
toString()in più classi per il debug. (I587e8)
Versione 1.0.0-beta01
15 luglio 2026
androidx.xr.arcore:arcore-*:1.0.0-beta01 è stato rilasciato. La versione 1.0.0-beta01 contiene questi commit.
Modifiche alle API
- Modificatore ridimensionabile aggiornato per utilizzare un
ResizePolicyanziché due modificatori (I7fb0f, b/496257436, b/519672992) - Aggiunta di sovraccarico mobile con il parametro
movePolicye ritiro ditransformingMovableemovable(Ic88c1, b/481781189) - Rimossa
TrackingState.TRACKING_DEGRADED dalla superficie dell'API pubblica e mappati gli stati di runtime degradati su PAUSED. AggiornaTrackingStateper utilizzare le enumerazioni anziché i valori interi per la conversione di stringhe e la conversione in fase di runtime. (I3eb5b, b/524326338) - È stata convertita Session.create in una funzione di sospensione. (I5d27f)
- È stato ritirato il metodo
ProjectedPermissionsResultContract(I141d5, b/515699436) AnchorEntityè stato rinominatoAnchorSpace(Ifa95e, b/513619219)
Versione 1.0.0-alpha15
17 giugno 2026
androidx.xr.arcore:arcore-*:1.0.0-alpha15 è stato rilasciato. La versione 1.0.0-alpha15 contiene questi commit.
Modifiche alle API
- Il campo
HitResult.createAnchorè stato rimosso. Gli sviluppatori possono creare un ancoraggio che rappresentiHitResultse la risorsa monitorabile del risultato è unAnchorablefornendo la posizione dell'hit alla funzionecreateAnchordiAnchorable. (Ia851e) - Il campo
AnchorUnsupportedObjectè stato rimosso. Non viene più generata da un runtime ARCore JXR. (Ia851e) androidx.xr.arcore.Anchoreandroidx.xr.arcore.ArDeviceora implementanoandroidx.xr.arcore.Trackable. (I57b65)Depth.left,Depth.righteDepth.monoora non sono più annullabili (I1fc5e)Face.getUserFaceora non è più annullabile (I0eac1)RenderViewpoint.left,RenderViewpoint.right,RenderViewpoint.monoora non sono nullabili (Icf7fa)Hand.lefteHand.rightnon sono annullabili (Icef37)- Aggiunta dell'API
QrCode(Ia0bbe)
Versione 1.0.0-alpha14
19 maggio 2026
androidx.xr.arcore:arcore-*:1.0.0-alpha14 è stato rilasciato. La versione 1.0.0-alpha14 contiene questi commit.
Modifiche alle API
- Ritiro di
GeospatialMode.VPS_AND_GPSa favore diGeospatialMode.SPATIALe introduzione di una nuova modalità di monitoraggio a basso consumo energetico,GeospatialMode.INERTIAL, che utilizza solo IMU e GPS. (I1e6cd) - Le classi di eccezioni di ancoraggio personalizzate:
AnchorInvalidUuidException,AnchorNotAuthorizedException,AnchorUnsupportedLocationException,AnchorRuntimeFailureExceptioneAnchorUnsupportedObjectExceptionsono ora istanzeRuntimeException, non destinate a essere controllate. (I9356e) - È stata aggiunta l'API
ArCoreTestRule, tra cuiTestArDevice,TestAugmentableObject,TestDepthMap,TestEye,TestFace,TestGeospatial,TestHand,TestPlane,TestRenderViewpointeTestTrackable(I0ad3c) - Rimuove
AnchorLoadInvalidUuid,AnchorCreateUnsupportedObject,AnchorCreateUnsupportedLocationeAnchorCreateNotAuthorized. Tutti questi errori sono ora eccezioni nel runtime. RimuoveAnchorCreateIllegalState. Nella maggior parte dei casi, è stato sostituito daAnchorCreateTrackingUnavailable. AggiungeAnchorExceptione le classi derivateAnchorInvalidUuidException,AnchorNotAuthorizedException,AnchorUnsupportedLocationException,AnchorRuntimeFailureExceptioneAnchorUnsupportedObjectException. (I4c4dd)
Contributo esterno
- È stata aggiunta l'API
AugmentedImageper il monitoraggio degli indicatori personalizzati (I0cf09)
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
TrackingStateeVpsAvailabilityResultsono stati spostati inandroidx.xr.arcore packagee i tipi inandroidx.xr.runtimesono ora ritirati. (Ic7930, b/480462213)Plane.Typeè stato rinominato inPlaneType. (I8c90c, b/482675376)Hand.HandSideè stato rinominato inHandSide. (Ica562, b/482675376)Plane.Labelè stato rinominato inPlaneLabel. (Ic6b67, b/482675376)Geospatial.Surfaceè stato rinominato inGeospatialSurface. (I1a8be, b/482675376)Geospatial.Stateè stato rinominato inGeospatialState. (I203fa, b/482675376)- API
NativeDataspostata nella libreriaxr:runtime:runtime. (I87954, b/494251500) Session.createeSession.configureora non sono esaustivi e richiedono clausole else nelle istruzioni when. (I9885e, b/495805998, b/495805998)androidx.xr.runtime.FieldOfViewè stato ritirato. Utilizzaandroidx.xr.runtime.math.FieldOfView. (Ia01a0, b/480233045)- È stato modificato Orbiter in modo che utilizzi un
OrbiterAnchorPoint + VolumeOffseto unOrbiterPoseProvideranziché posizione, offset, offsetType, allineamento ed elevazione. È stato rimosso anche il parametroshouldRenderInNonSpatial. Se lo sviluppatore non vuole che l'orbiter venga visualizzato in modalità non spaziale, deve racchiuderlo in un'istruzione if e controllareSpatialCapabilities. (I9fbb3, b/462428503) - Sono stati aggiunti modificatori mobili. Al momento, questi modificatori funzionano bene per
SpatialPanelseSpatialExternalSurface. A breve saranno supportati anche perSpatialGltfModels. Tuttavia, l'intenzione è di supportarli bene per tutti iSubspaceComposables. (I9a3cd, b/479530787, b/478935063, b/478935063) - Gli sviluppatori devono osservare il
ArDevice.stateflusso di monitoraggioState.trackingStatee modificare di conseguenza il rendering o gli avvisi della loro applicazione in base alla fedeltà del monitoraggio. (Ic00f0, b/445466590) - Valori enum
HandJointTyperinominati. (Ifbc83, b/482670596) - Rinominate le costanti
FaceConfidenceRegion. (Ia62d5, b/482670596) - Rinominate le costanti
FaceBlendShapeType. (I33b8b, b/482670596) CreatePoseFromGeospatialPoseErrorInternaleCreateGeospatialPoseFromPoseErrorInternalaggiunti. (I4bcf1, b/482666615)DeviceTrackingMode.LAST_KNOWNè stato rinominato inSPATIAL_LAST_KNOWN(con un fallback ritirato), è stato aggiuntoINERTIAL_LAST_KNOWNper il monitoraggio 3DoF ed è stato aggiuntoTRACKING_DEGRADEDaTrackingState. (Ie661c, b/445466590)GroupEntitydeprecato. Per avere un'entità con solo la funzionalità di base, chiamaEntity.create, che restituirà un'interfaccia di entità. (I4c450, b/473867483)- È stata aggiunta l'API
XrLog. ImpostaXrLog.isEnabledsutrueper attivare la registrazione in JetpackXR e utilizzaXrLog.Levelper impostare il livello di log. (I76a1f, b/463460895, b/487378441)
Correzioni di bug
- Aggiungi 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 un elenco a un insieme. (I25a64, b/487376359)- I tipi
androidx.xr.arcore.Eyeeandroidx.xr.arcore.Hand. (I42438, b/449032900) - È stato aggiunto l'overload
Session.createper consentire il passaggio di un contesto Android per la definizione dell'ambito delle risorse. (I7d3fe, b/415805990, b/477386334) - Modifiche
FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMITaFakeRuntimeAnchor.anchorResourceLimit. (I90841, b/431992235) - Rendere sperimentale l'API
TiltGesture, in quanto potrebbe essere modificata o rimossa in futuro. Per utilizzare questa API, attiva@ExperimentalGesturesApi(Ic9858) - È stata aggiunta la possibilità di impostare categorie per il monitoraggio di
AugmentedObjectnella 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à
- Introduce l'API
TiltGesture, che fornisce unFlowreattivo 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. Consulta
androidx.xr.runtime.Logper ulteriori informazioni. (l52735, b/448697662)
Modifiche alle API
Geospatial.createPoseFromGeospatialPoseora funziona su dispositivi compatibili 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à
ARCoreper Jetpack XR ora supporta i dispositivi su cui è disponibile Google Play Services per AR.- Sono state aggiunte 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-openxraggiunto 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 eseguito la migrazione al moduloxr:arcore:arcore-testing. (I25469) - Aggiunta di
ArDeviceeRenderViewpointper consentire alle applicazioni di recuperare la postura e la configurazione di visualizzazione del dispositivo a scopo di rendering. (Ib7e3f) - Rinomina le enumerazioni
HandJointTypecon il prefissoHAND_JOINT_TYPE_. (I3f7cd) HandJointTypeè stato spostato daxr:runtime:runtimeaxr:arcore:arcore. (Iadb9c, b/409058039)Hand.Stateora espone unjava.nio.FloatBuffercon le pose delle articolazioni in un formato che consente un facile accesso alle applicazioni orientate alle prestazioni. (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à
- Aggiungi
getPrimaryHandSidein modo che lo sviluppatore possa ottenere le informazioni sul lato destro (I270bd) - Aggiungi l'API per il controllo geospaziale della disponibilità del VPS (I58573)
- Aggiungi l'API ARCore per
checkVpsAvailability(Idbded) - Funzioni di estensione
stateFlowableaggiunte a:xr:arcore:arcore-rxjava3per l'utilizzo da parte degli sviluppatori Java. (I083aa, b/427247794)
Modifiche alle API
- I valori di configurazione
*Modesono 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 fare affidamento sulla libreria
xr:arcore:arcore-rxjava3per 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 fare affidamento sulla libreriaxr:arcore:arcore-guavaper accedere alle API compatibili. (Iffcb4, b/422773524) Anchor.persistAsync()aggiunto aAnchorGuavaper l'utilizzo da parte degli sviluppatori Java. (I4af1c, b/425984631)Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface)aggiunto aEarthGuavaper l'utilizzo da parte degli sviluppatori Java. (I66357, b/425992992)- Gli sviluppatori Java utilizzeranno le funzioni di estensione per
GltfModel.createAsyncinGltfModel.kt. Le funzioni asincrone inGltfModelverranno eliminate. (I0af60) - Questa libreria ora utilizza le annotazioni di nullabilità JSpecify, che sono di tipo use. Gli sviluppatori Kotlin devono utilizzare il seguente argomento del compilatore per imporre l'utilizzo corretto:
-Xjspecify-annotations=strict(questo è il valore predefinito a partire dalla versione 2.1.0 del compilatore Kotlin) (Ia8420, b/326456246) - Funzioni di estensione
subscribeAsFlowableaggiunte a:xr:arcore:arcore-rxjava3per 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)
TrackingStateeHandJointTypesono stati spostati da ARCore a Runtime.Hand.State.isActive (boolean)è stato modificato inHand.State.trackingState (androidx.xr.runtime.TrackingState).Anchor.loadrestituisceAnchor.AnchorLoadInvalidUuidse l'UUID non è valido.
Versione 1.0.0-alpha03
26 febbraio 2025
androidx.xr.arcore:arcore:1.0.0-alpha03 viene rilasciato senza modifiche degne di nota 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.lefteHand.rightper accedere alle informazioni di monitoraggio. - Le API che generano un ancoraggio (
Anchor.create,Anchor.load,Plane.createAnchor) ora restituiscono tutteAnchorCreateResulte implementano correttamenteAnchorCreateResourcesExhausted.
Correzioni di bug
Anchor.detachnon causa più un arresto anomalo irreversibile a causa di una race condition 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 versione iniziale
Ispirata alla libreria ARCore esistente, la libreria ARCore per Jetpack XR offre funzionalità per fondere i contenuti digitali con il mondo reale. Questa libreria include il rilevamento del movimento, gli ancoraggi persistenti, il test di hit e l'identificazione del piano con etichettatura semantica (ad esempio, pavimento, pareti e piani dei tavoli). Per scoprire di più sull'utilizzo di ARCore per Jetpack XR, consulta la guida per gli sviluppatori.
Session: ARCore per Jetpack XR utilizza Jetpack XR Runtime sotto il cofano per alimentare la sua funzionalità. Utilizzerai una sessione per interagire con la maggior parte delle API ARCore per Jetpack XR, quindi dai un'occhiata alla documentazione.Plane: usa i piani per comprendere il mondo che ti circonda. Ogni piano ha unLabelche lo descrive semanticamente. Puoi utilizzaresubscribeper ricevere notifiche sugli ultimi aerei rilevati ostateper ricevere notifiche sulle modifiche apportate a un aereo specifico.Anchor: un collegamento tra un oggetto virtuale e una posizione nel mondo reale. Gli ancoraggi possono essere collegati a una posizione specifica nello spazio (utilizzandocreate) o a unTrackable(utilizzandocreateAnchor).Gli ancoraggi possono essere riutilizzati in più sessioni. Puoi utilizzare
persistper archiviarli,getPersistedAnchorUuidsper enumerarli eloadper recuperarli. Assicurati diunpersistuna volta che non sono più in uso.Gli ancoraggi sono interoperabili tra ARCore per Jetpack XR e Jetpack SceneCore. Puoi creare un
AnchorEntityutilizzando un ancoraggio oppure, se hai un AnchorEntity esistente, puoi utilizzaregetAnchorper recuperare l'ancoraggio di supporto.Offri interazioni utente naturali utilizzando
hitTest. Un hitTest utilizza unRayper determinare quali contenuti interseca e per creare unAnchorda quella posizione. Valuta la possibilità di eseguire un test hitTest da unInputEvent.
Problemi noti
Potrebbe esserci un ritardo tra la chiamata a
unpersiste la rimozione del relativo UUID dai risultati restituiti dagetPersistedAnchorUuids.createnon verificherà che il sistema disponga di risorse sufficienti per restituire nuovi ancoraggi. La creazione di un numero eccessivo di ancore potrebbe causare un arresto anomalo.Al momento non è supportato il mantenimento di un ancoraggio che è stato precedentemente mantenuto e rimosso.
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
createpotrebbero non riuscire a causa di un errore del codice nativo e terminare immediatamente l'attività.In determinate circostanze, potrebbe essere generato erroneamente un
RuntimeExceptiondurante la chiamata dipersistcon il messaggio "L'ancora non è stata salvata". In queste circostanze, la funzione avrà comunque esito positivo e l'ancora verrà salvata. Come soluzione alternativa, ti consigliamo di eseguire il wrapping della chiamata apersistcon un bloccotry.