ARCore para Jetpack XR

Traga 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
6 de maio de 2026 - - - 1.0.0-alpha13

Declarar dependências

Para adicionar uma dependência ao ARCore para Jetpack XR, adicione o repositório Maven do Google ao seu projeto. Leia o repositório Maven do Google para 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.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")
}

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.0

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 estes commits.

Mudanças na API

  • TrackingState e VpsAvailabilityResult foram movidos para o 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 não são exaustivos 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)
  • O Orbiter foi alterado para usar um OrbiterAnchorPoint + VolumeOffset ou um OrbiterPoseProvider em vez de posição, deslocamento, offsetType, alinhamento e elevação. O parâmetro shouldRenderInNonSpatial também foi removido. Se o desenvolvedor não quiser que o Orbiter seja renderizado em não espacial, ele precisa envolver o Orbiter em uma instrução "if" e verificar as SpatialCapabilities. (I9fbb3, b/462428503)
  • Modificadores móveis foram adicionados. Esses modificadores funcionam bem, no momento, para SpatialPanels e SpatialExternalSurface. Em breve, eles também serão compatíveis com SpatialGltfModels. No entanto, a intenção é que eles sejam bem compatíveis com todos os SubspaceComposables. (I9a3cd, b/479530787, b/478935063, b/478935063)
  • Os desenvolvedores precisam observar o fluxo 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 enumeração 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)
  • DeviceTrackingMode.LAST_KNOWN foi renomeado como SPATIAL_LAST_KNOWN (com um substituto descontinuado), INERTIAL_LAST_KNOWN foi adicionado para rastreamento de 3DoF e TRACKING_DEGRADED foi adicionado a TrackingState. (Ie661c, b/445466590)
  • O uso de GroupEntity foi descontinuado. Para ter uma entidade com apenas a funcionalidade básica da entidade, chame Entity.create, que vai retornar e uma interface de entidade. (I4c450, b/473867483)
  • A API XrLog foi adicionada. 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

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

Correções de bugs

  • O build do Chrome foi corrigido atualizando o 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

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

Mudanças na API

  • 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.
  • APIs geoespaciais foram adicionadas para disponibilidade de 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 a :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)
  • ArDevice e RenderViewpoint foram adicionados para permitir que os aplicativos recuperem a pose e a configuração de exibição do dispositivo para fins de renderização. (Ib7e3f)
  • Os enums HandJointType foram renomeados com o prefixo HAND_JOINT_TYPE_. (I3f7cd)
  • HandJointType foi movido de xr:runtime:runtime para xr:arcore:arcore. (Iadb9c, b/409058039)
  • Hand.State agora expõe um java.nio.FloatBuffer com as poses das articulações em um formato que permite acesso fácil a aplicativos orientados a 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

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

Mudanças na API

  • Os valores de *Mode de configuração 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 depender da 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 depender da biblioteca xr:arcore:arcore-guava para acessar APIs compatíveis. (Iffcb4, b/422773524)
  • Anchor.persistAsync() foi adicionado a AnchorGuava para uso por desenvolvedores Java. (I4af1c, b/425984631)
  • Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface) foi 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 anotações de nulidade JSpecify, que são de uso de tipo. Os desenvolvedores Kotlin precisam usar o seguinte argumento do compilador para aplicar o uso correto: -Xjspecify-annotations=strict (esse é o padrão a partir da versão 2.1.0 do compilador Kotlin) (Ia8420, b/326456246).
  • As funções de extensão subscribeAsFlowable foram 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) foi alterado para Hand.State.trackingState (androidx.xr.runtime.TrackingState).
  • Anchor.load retorna Anchor.AnchorLoadInvalidUuid se o UUID for inválido.

Versão 1.0.0-alpha03

26 de fevereiro de 2025

Lançamento de androidx.xr.arcore:arcore:1.0.0-alpha03 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

  • Suporte à captura de movimentos das mãos foi adicionado. 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 corretamente AnchorCreateResourcesExhausted.

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.
  • 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 atual, a biblioteca ARCore para Jetpack XR oferece recursos para misturar conteúdo digital com o mundo real. Essa biblioteca inclui rastreamento de movimento, âncoras persistentes, teste de detecção de acertos e identificação de planos com rotulagem semântica (por exemplo, piso, 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 ativar a funcionalidade. Você vai usar uma sessão para interagir com a maioria das APIs do ARCore para Jetpack XR. Consulte a documentação.

  • Plane: use planos para entender o mundo ao seu redor. Cada plano tem um Label que o descreve semanticamente. Você pode usar subscribe para receber notificações sobre os planos detectados mais recentes 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. Você pode usar persist para armazená-las, getPersistedAnchorUuids para enumerá-las e load para recuperá-las. Verifique se você unpersist elas quando não estiverem mais em uso.

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

    • Ofereça interações naturais do usuário usando hitTest. Um hitTest usa um Ray para determinar quais conteúdos ele cruza e para criar uma Anchor 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.

  • create não vai validar se o sistema tem recursos suficientes para retornar novas âncoras. A criação de uma quantidade excessiva de âncoras pode levar a uma falha.

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

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

  • Em determinadas circunstâncias, uma RuntimeException pode ser gerada erroneamente ao chamar persist com a mensagem "A âncora não foi persistida". Nessas circunstâncias, a função ainda será bem-sucedida e a âncora será persistida. Recomendamos envolver a chamada para persist com um bloco try como solução alternativa.