ARCore para Jetpack XR

Leve o conteúdo digital para o mundo real com recursos de percepção.
Atualização mais recente Versão estável Versão candidata a lançamento Versão Beta Versão Alfa
21 de outubro de 2026 1.0.0 - - 1.1.0-alpha01

Declarar dependências

Para adicionar uma dependência do ARCore para Jetpack XR, adicione o repositório Maven do Google ao seu projeto. Leia Repositório Maven do Google para ver mais informações.

Adicione as dependências dos artefatos necessários ao arquivo build.gradle do seu app ou módulo:

Groovy

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

Kotlin

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

Para mais informações sobre dependências, consulte Adicionar dependências de build.

Feedback

Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas conhecidos nesta biblioteca antes de criar um novo. Adicione seu voto a um problema clicando no botão de estrela.

Criar novo problema

Consulte a documentação do Issue Tracker para saber mais.

Versão 1.1

Versão 1.1.0-alpha01

21 de outubro de 2026

Lançamento de androidx.xr.arcore:arcore-*:1.1.0-alpha01. A versão 1.1.0-alpha01 contém estes commits.

Mudanças na API

  • Introdução da API SpatialAnnotation para rastrear geometrias e objetos físicos em 3D. Adicionamos SpatialAnnotationTrackingOptions e o padrão de builder correspondente para configurar o rastreamento espacial usando buffers de imagem da câmera. (I918ce).
  • Introdução de SpatialAnnotation e SpatialAnnotationTrackingMode ao Jetpack XR ARCore, permitindo que os desenvolvedores configurem e rastreiem geometrias quadrilaterais 3D arbitrárias (Quad) direcionadas a ambientes espaciais físicos do mundo real. (I880e4).
  • Adição de TestSpatialAnnotation para permitir a simulação programática de anotações espaciais em testes automatizados. (If2335).
  • Adicionamos geospatialPose, horizontalAccuracy, verticalAccuracy e orientationYawAccuracy como novas APIs para fornecer mais informações no estado geoespacial. (If28f8).

Correções de bugs

  • A dependência androidx.lifecycle:lifecycle-runtime foi atualizada para 2.10.0. Essa versão é necessária para que as verificações de lint do ciclo de vida do pacote sejam executadas com o AGP versão 9.5.0-alpha04 ou mais recente. (I99bfd, b/556807521).
  • Verificamos se a contagem máxima de imagens é 0 ao configurar AugmentedImage, gerando UnsupportedOperationException em vez de falhar inesperadamente. I6ce439
  • Corrigir vazamentos de memória e problemas de simultaneidade em AugmentedImageRenderer rastreando e cancelando corretamente os jobs de renderização, descartando entidades e modificando com segurança a coleção de imagens. Ie70760

Versão 1.0

Versão 1.0.0

21 de outubro de 2026

Lançamento de androidx.xr.arcore:arcore-*:1.0.0. A versão 1.0.0 contém estes commits.

Principais recursos da versão 1.0.0:

  • O ARCore para Jetpack XR agora está estável. A biblioteca ARCore para Jetpack XR oferece recursos para combinar conteúdo digital com o mundo real. Essa biblioteca inclui rastreamento de movimento, âncoras persistentes, teste de hit, identificação de plano com rótulos semânticos (por exemplo, chão, paredes e mesas) e poses geoespaciais usando o Sistema de Posicionamento Visual do Google.
  • Para mais informações, consulte nosso Guia para desenvolvedores e a Referência da API.

Versão 1.0.0-rc02

7 de outubro de 2026

Lançamento de androidx.xr.arcore:arcore-*:1.0.0-rc02. A versão 1.0.0-rc02 contém estas confirmações.

Correções de bugs

  • Correção de um problema em que o OpenXrRuntime não conseguia configurar a sessão quando o rastreamento de imagens aumentadas não era compatível. (I8b9759).
  • Correção de vários problemas, incluindo: melhoria no gerenciamento de memória em XrInstanceManager usando applicationContext, resolução de possíveis problemas relacionados ao ciclo de vida simplificando os mecanismos de armazenamento em cache de Session e Scene e melhoria do ReferenceCleaner para garantir registros de limpeza com concorrência segura e descartes explícitos. (Id0b76c).

Versão 1.0.0-rc01

9 de setembro de 2026

Lançamento de androidx.xr.arcore:arcore-*:1.0.0-rc01. A versão 1.0.0-rc01 contém estes commits.

Versão 1.0.0-beta02

12 de agosto de 2026

Lançamento de androidx.xr.arcore:arcore-*:1.0.0-beta02. A versão 1.0.0-beta02 contém estes commits.

Correções de bugs

  • Correção de um problema de simultaneidade na persistência de âncoras do OpenXR. (I15c8b).
  • Implementamos toString() em mais classes para depuração. (I587e8).

Versão 1.0.0-beta01

15 de julho de 2026

Lançamento de androidx.xr.arcore:arcore-*:1.0.0-beta01. A versão 1.0.0-beta01 contém estas confirmações.

Mudanças na API

  • Atualizamos o modificador redimensionável para usar um ResizePolicy em vez de dois modificadores (I7fb0f, b/496257436, b/519672992).
  • Adicionamos uma sobrecarga móvel com o parâmetro movePolicy e descontinuamos transformingMovable e movable (Ic88c1, b/481781189).
  • Remoção de TrackingState.TRACKING_DEGRADED da superfície da API pública e mapeamento dos estados degradados do ambiente de execução para PAUSED. Atualização de TrackingState para usar tipos enumerados em vez de valores int para conversão de string e de ambiente de execução. (I3eb5b, b/524326338).
  • Session.create foi convertida em uma função de suspensão. (I5d27f).
  • O ProjectedPermissionsResultContract foi descontinuado (I141d5, b/515699436).
  • AnchorEntity foi atualizado para AnchorSpace (Ifa95e, b/513619219).

Versão 1.0.0-alpha15

17 de junho de 2026

Lançamento de androidx.xr.arcore:arcore-*:1.0.0-alpha15. A versão 1.0.0-alpha15 contém estas confirmações.

Mudanças na API

  • HitResult.createAnchor foi removido. Os desenvolvedores podem criar uma âncora que represente o HitResult se o rastreável do resultado for um Anchorable, fornecendo a posição do hit para a função createAnchor do Anchorable. (Ia851e).
  • AnchorUnsupportedObject foi removido. Ele não é mais gerado por um ambiente de execução do ARCore JXR. (Ia851e).
  • androidx.xr.arcore.Anchor e androidx.xr.arcore.ArDevice agora implementam androidx.xr.arcore.Trackable. (I57b65).
  • Depth.left, Depth.right e Depth.mono agora não são anuláveis (I1fc5e).
  • Face.getUserFace agora não é anulável (I0eac1).
  • RenderViewpoint.left, RenderViewpoint.right e RenderViewpoint.mono agora não são anuláveis (Icf7fa).
  • Hand.left e Hand.right não são anuláveis (Icef37).
  • Adição da API QrCode (Ia0bbe)

Versão 1.0.0-alpha14

19 de maio de 2026

Lançamento de androidx.xr.arcore:arcore-*:1.0.0-alpha14. A versão 1.0.0-alpha14 contém estas confirmações.

Mudanças na API

  • Descontinuação de GeospatialMode.VPS_AND_GPS em favor de GeospatialMode.SPATIAL e introdução de um novo modo de rastreamento de menor consumo de energia, GeospatialMode.INERTIAL, que usa apenas IMU e GPS. (I1e6cd).
  • Classes de exceção de âncora personalizadas: AnchorInvalidUuidException, AnchorNotAuthorizedException, AnchorUnsupportedLocationException, AnchorRuntimeFailureException e AnchorUnsupportedObjectException agora são instâncias de RuntimeException, que não devem ser verificadas. (I9356e).
  • Adicionamos a API ArCoreTestRule, incluindo TestArDevice, TestAugmentableObject, TestDepthMap, TestEye, TestFace, TestGeospatial, TestHand, TestPlane, TestRenderViewpoint e TestTrackable (I0ad3c).
  • Remove AnchorLoadInvalidUuid, AnchorCreateUnsupportedObject, AnchorCreateUnsupportedLocation e AnchorCreateNotAuthorized. Todos esses erros agora são exceções no ambiente de execução. Remove AnchorCreateIllegalState. Ele foi substituído por AnchorCreateTrackingUnavailable na maioria dos casos. Adiciona AnchorException e as classes derivadas AnchorInvalidUuidException, AnchorNotAuthorizedException, AnchorUnsupportedLocationException, AnchorRuntimeFailureException e AnchorUnsupportedObjectException. (I4c4dd).

Contribuição externa

  • Adição da API AugmentedImage para rastreamento de marcadores personalizados (I0cf09).

Versão 1.0.0-alpha13

6 de maio de 2026

Lançamento de androidx.xr.arcore:arcore-*:1.0.0-alpha13. A versão 1.0.0-alpha13 contém estas confirmações.

Mudanças na API

  • TrackingState e VpsAvailabilityResult foram movidos para androidx.xr.arcore package, e os tipos em androidx.xr.runtime foram descontinuados. (Ic7930, b/480462213).
  • Plane.Type foi renomeado como PlaneType (I8c90c, b/482675376).
  • Hand.HandSide foi renomeado como HandSide (Ica562, b/482675376).
  • Plane.Label foi renomeado como PlaneLabel (Ic6b67, b/482675376).
  • Geospatial.Surface foi renomeado como GeospatialSurface (I1a8be, b/482675376).
  • Geospatial.State foi renomeado como GeospatialState. (I203fa, b/482675376).
  • A API NativeData foi movida para a biblioteca xr:runtime:runtime. (I87954, b/494251500)
  • Session.create e Session.configure agora são alguns exemplos e exigem cláusulas else em instruções when. (I9885e, b/495805998, b/495805998).
  • O uso de androidx.xr.runtime.FieldOfView foi descontinuado Use androidx.xr.runtime.math.FieldOfView (Ia01a0, b/480233045).
  • Mudança no Orbiter para usar um OrbiterAnchorPoint + VolumeOffset ou um OrbiterPoseProvider em vez de posição, deslocamento, offsetType, alinhamento e elevação. Também removemos o parâmetro shouldRenderInNonSpatial. Se o desenvolvedor não quiser que o orbiter seja renderizado em modo não espacial, ele precisa envolver o orbiter em uma instrução if e verificar o SpatialCapabilities. (I9fbb3, b/462428503).
  • Adição de modificadores móveis. Esses modificadores funcionam bem, no momento, para SpatialPanels e SpatialExternalSurface. Em breve, eles também serão compatíveis com o SpatialGltfModels. No entanto, a intenção é que eles sejam compatíveis com todos os SubspaceComposables. (I9a3cd, b/479530787, b/478935063, b/478935063)
  • Os desenvolvedores precisam observar o fluxo de ArDevice.state para monitorar State.trackingState e ajustar a renderização ou os avisos do aplicativo de acordo com a fidelidade do rastreamento. (Ic00f0, b/445466590).
  • Os valores de tipo enumerado HandJointType foram renomeados. (Ifbc83, b/482670596).
  • As constantes FaceConfidenceRegion foram renomeadas. (Ia62d5, b/482670596).
  • As constantes FaceBlendShapeType foram renomeadas. (I33b8b, b/482670596).
  • CreatePoseFromGeospatialPoseErrorInternal e CreateGeospatialPoseFromPoseErrorInternal foram adicionados. (I4bcf1, b/482666615).
  • Renomeamos DeviceTrackingMode.LAST_KNOWN como SPATIAL_LAST_KNOWN (com um substituto descontinuado), adicionamos INERTIAL_LAST_KNOWN para rastreamento de 3DoF e adicionamos TRACKING_DEGRADED a TrackingState. (Ie661c, b/445466590).
  • O uso de GroupEntity foi descontinuado. Para ter uma entidade apenas com a funcionalidade básica, chame Entity.create, que vai retornar uma interface Entity. (I4c450, b/473867483)
  • Adição da API XrLog. Defina XrLog.isEnabled como true para ativar a geração de registros no JetpackXR e use XrLog.Level para definir o nível de registro. (I76a1f, b/463460895, b/487378441)

Correções de bugs

  • Adicione o suporte ao estado de rastreamento de dispositivos aos dispositivos OpenXR. (I91485, b/445466590).

Versão 1.0.0-alpha12

25 de março de 2026

Lançamento de androidx.xr.arcore:arcore-*:1.0.0-alpha12. A versão 1.0.0-alpha12 contém estes commits.

Mudanças na API

  • Mudança de Config.augmentedObjectCategories de uma lista para um conjunto. (I25a64, b/487376359).
  • Os tipos androidx.xr.arcore.Eye e androidx.xr.arcore.Hand. (I42438, b/449032900).
  • Adicionamos a sobrecarga de Session.create para permitir a transmissão de um contexto do Android para o escopo de recursos. (I7d3fe, b/415805990, b/477386334).
  • Muda FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMIT para FakeRuntimeAnchor.anchorResourceLimit. (I90841, b/431992235).
  • A API TiltGesture foi marcada como experimental, já que pode ser alterada ou removida no futuro. Para usar essa API, ative a @ExperimentalGesturesApi (Ic9858).
  • Adicionamos a capacidade de definir categorias para o rastreamento de AugmentedObject na configuração (I1f6e4, b/480220930).

Correções de bugs

  • A build do Chrome foi corrigida com a atualização do arquivo META-INF/services/ com o local real de PerceptionRuntimeFactory. (I7a801, b/481288291).

Versão 1.0.0-alpha11

25 de fevereiro de 2026

Lançamento de androidx.xr.arcore:arcore-*:1.0.0-alpha11. A versão 1.0.0-alpha11 contém estes commits.

Versão 1.0.0-alpha10

28 de janeiro de 2026

Lançamento de androidx.xr.arcore:arcore-*:1.0.0-alpha10. A versão 1.0.0-alpha10 contém estes commits.

Novos recursos

  • Introduz a API TiltGesture, que fornece um Flow reativo para detecção estável do estado de inclinação do dispositivo (PARA CIMA/PARA BAIXO) com progresso de transição. (Ic269f, b/448152779).
  • O ARCore para Jetpack XR agora usa o mecanismo de registro do ambiente de execução de XR. Consulte androidx.xr.runtime.Log para mais informações. (l52735, b/448697662).

Mudanças na API

  • O Geospatial.createPoseFromGeospatialPose agora funciona em dispositivos com OpenXR. (l362c6).

Versão 1.0.0-alpha09

3 de dezembro de 2025

Lançamento de androidx.xr.arcore:arcore-*:1.0.0-alpha09. A versão 1.0.0-alpha09 contém estes commits.

Versão 1.0.0-alpha08

19 de novembro de 2025

Lançamento de androidx.xr.arcore:arcore-*:1.0.0-alpha08. A versão 1.0.0-alpha08 contém estes commits.

Novos recursos

  • O ARCore para Jetpack XR agora oferece suporte a dispositivos em que o Google Play Services para RA está disponível.
  • Adição de APIs geoespaciais para disponibilidade do VPS e conversão de pose (I144dc).

Versão 1.0.0-alpha07

22 de outubro de 2025

Lançamento de androidx.xr.arcore:arcore-*:1.0.0-alpha07. A versão 1.0.0-alpha07 contém estes commits.

Correções de bugs

  • :xr:arcore:arcore-openxr foi adicionado como uma dependência de implementação para :xr:arcore:arcore (I47315, b/446999229).

Versão 1.0.0-alpha06

24 de setembro de 2025

Lançamento de androidx.xr.arcore:arcore-*:1.0.0-alpha06. A versão 1.0.0-alpha06 contém estes commits.

Mudanças na API

  • O suporte a testes para ARCore foi migrado para o módulo xr:arcore:arcore-testing. (I25469).
  • Adição de ArDevice e RenderViewpoint para permitir que os aplicativos recuperem a pose e a configuração de exibição do dispositivo para fins de renderização. (Ib7e3f).
  • Renomeie os tipos enumerados HandJointType com o prefixo HAND_JOINT_TYPE_. (I3f7cd).
  • HandJointType foi movido de xr:runtime:runtime para xr:arcore:arcore. (Iadb9c, b/409058039).
  • O Hand.State agora expõe um java.nio.FloatBuffer com as poses de articulação em um formato que permite acesso fácil a aplicativos orientados ao desempenho. (I55e27).

Versão 1.0.0-alpha05

30 de julho de 2025

Lançamento de 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. A versão 1.0.0-alpha05 contém estes commits.

Novos recursos

  • Adição de getPrimaryHandSide para que o desenvolvedor possa receber as informações do lado da mão (I270bd).
  • Adição da API de verificação geoespacial de disponibilidade do VPS (I58573)
  • Adição da API ARCore para checkVpsAvailability (Idbded)
  • Funções de extensão stateFlowable adicionadas a :xr:arcore:arcore-rxjava3 para uso por desenvolvedores Java. (I083aa, b/427247794).

Mudanças na API

  • Os valores de configuração *Mode foram renomeados para refletir o comportamento deles. (I6d247, b/414648065).
  • O artefato principal do ARCore (xr:arcore:arcore) vai conter apenas APIs assíncronas no estilo Kotlin. Os desenvolvedores Java podem usar a biblioteca xr:arcore:arcore-rxjava3 para acessar APIs compatíveis. (Ia525e, b/422794329).
  • O artefato principal do ARCore (xr:scenecore:scenecore) vai conter apenas APIs assíncronas no estilo Kotlin. Os desenvolvedores Java podem usar a biblioteca xr:arcore:arcore-guava para acessar APIs compatíveis. (Iffcb4, b/422773524).
  • Anchor.persistAsync() adicionado a AnchorGuava para uso por desenvolvedores Java. (I4af1c, b/425984631).
  • Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface) adicionado a EarthGuava para uso por desenvolvedores Java. (I66357, b/425992992).
  • Os desenvolvedores Java vão usar as funções de extensão para GltfModel.createAsync em GltfModel.kt. As funções assíncronas em GltfModel serão excluídas. (I0af60).
  • Essa biblioteca agora usa as anotações de nulidade do JSpecify, que são de uso de tipo. Os desenvolvedores Kotlin precisam usar o seguinte argumento do compilador para garantir o uso correto: -Xjspecify-annotations=strict (esse é o padrão a partir da versão 2.1.0 do compilador Kotlin) (Ia8420, b/326456246).
  • Funções de extensão subscribeAsFlowable adicionadas a :xr:arcore:arcore-rxjava3 para uso por desenvolvedores Java. (Id3e49, b/427277298).

Versão 1.0.0-alpha04

7 de maio de 2025

Lançamento de androidx.xr.arcore:arcore:1.0.0-alpha04. A versão 1.0.0-alpha04 contém estes commits.

Mudanças na API

  • Os projetos lançados com o Kotlin 2.0 exigem o KGP 2.0.0 ou mais recente para serem consumidos (Idb6b5).
  • TrackingState e HandJointType foram movidos do ARCore para o ambiente de execução.
  • Hand.State.isActive (boolean) mudou para Hand.State.trackingState (androidx.xr.runtime.TrackingState).
  • Anchor.load retornará Anchor.AnchorLoadInvalidUuid se o UUID for inválido.

Versão 1.0.0-alpha03

26 de fevereiro de 2025

A versão androidx.xr.arcore:arcore:1.0.0-alpha03 foi lançada sem mudanças importantes desde a última versão Alfa. A versão 1.0.0-alpha03 contém estes commits.

Versão 1.0.0-alpha02

12 de fevereiro de 2025

Lançamento de androidx.xr.arcore:arcore:1.0.0-alpha02. A versão 1.0.0-alpha02 contém estes commits.

Novos recursos

  • Adicionamos suporte à captura de movimentos das mãos. Use Hand.left e Hand.right para acessar as informações de rastreamento.
  • As APIs que geram uma âncora (Anchor.create, Anchor.load, Plane.createAnchor) agora retornam AnchorCreateResult e implementam AnchorCreateResourcesExhausted corretamente.

Correções de bugs

  • Anchor.detach não causa mais uma falha fatal devido a uma disputa com a linha de execução de atualização da sessão.
  • O Anchor.create é mais estável quando executado em um emulador

Versão 1.0.0-alpha01

12 de dezembro de 2024

Lançamento de androidx.xr.arcore:arcore-* 1.0.0-alpha01.

Recursos da versão inicial

Inspirada na biblioteca ARCore, a biblioteca ARCore para Jetpack XR oferece recursos para combinar conteúdo digital com o mundo real. Essa biblioteca inclui rastreamento de movimento, âncoras persistentes, teste de hit e identificação de plano com rotulagem semântica (por exemplo, chão, paredes e mesas). Consulte o guia para desenvolvedores para saber mais sobre como trabalhar com o ARCore para Jetpack XR.

  • Session: o ARCore para Jetpack XR usa o ambiente de execução do Jetpack XR para oferecer as funcionalidades. Você vai usar uma sessão para interagir com a maioria das APIs do ARCore para Jetpack XR. Por isso, consulte a documentação.

  • Plane: use planos para entender o mundo ao seu redor. Cada plano tem um Label que o descreve semanticamente. Use subscribe para receber notificações sobre os planos detectados mais recentemente ou state para receber notificações sobre as mudanças em um plano específico.

  • Anchor: um link entre um objeto virtual e um local do mundo real. As âncoras podem ser anexadas a um local específico no espaço (usando create) ou a um Trackable (usando createAnchor).

    • As âncoras podem ser reutilizadas em várias sessões. Use persist para armazená-los, getPersistedAnchorUuids para enumerá-los e load para recuperá-los. Não se esqueça de unpersist quando não estiverem mais em uso.

    • As âncoras são interoperáveis entre o ARCore para Jetpack XR e o Jetpack SceneCore. É possível criar um AnchorEntity usando uma âncora ou, se você já tiver uma AnchorEntity, use getAnchor para recuperar a âncora de apoio.

    • Ofereça interações naturais ao usuário usando o hitTest. Um hitTest usa um Ray para determinar quais conteúdos ele cruza e criar um Anchor a partir desse local. Considere realizar um hitTest de um InputEvent.

Problemas conhecidos

  • Pode haver um atraso entre a chamada de unpersist e a remoção do UUID dos resultados retornados por getPersistedAnchorUuids.

  • O create não vai validar se o sistema tem recursos suficientes para retornar novas âncoras. Criar uma quantidade excessiva de âncoras pode causar uma falha.

  • No momento, não é possível manter uma âncora que foi mantida e não mantida anteriormente.

  • O uso no emulador é aceito, mas o comportamento pode não ser tão estável quanto em um dispositivo real. Em especial, as chamadas para create podem falhar com um erro de código nativo e encerrar a atividade imediatamente.

  • Em determinadas circunstâncias, um RuntimeException pode ser gerado por engano ao chamar persist com a mensagem "A âncora não foi mantida". Nessas circunstâncias, a função ainda será bem-sucedida, e a âncora será mantida. Recomendamos que você use um bloco try para encapsular a chamada para persist como solução alternativa.