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
30 de julho de 2025 - - - 1.0.0-alpha05

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 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-alpha05"
}

Kotlin

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

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-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 estas confirmações.

Novos recursos

  • Adicione getPrimaryHandSide para que o desenvolvedor possa receber as informações do lado direito (I270bd)
  • Adicionar API de disponibilidade de VPS de verificação geoespacial (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 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() 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)
  • Agora, essa biblioteca usa 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 estas confirmações.

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 retorna Anchor.AnchorLoadInvalidUuid se o UUID for inválido.

Versão 1.0.0-alpha03

26 de fevereiro de 2025

androidx.xr.arcore:arcore:1.0.0-alpha03 é lançado sem mudanças significativas desde a última versão Alfa. A versão 1.0.0-alpha03 contém estas confirmações.

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 estas confirmações.

Novos recursos

  • Adicionamos suporte ao rastreamento de 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

  • O Anchor.detach não causa mais uma falha fatal devido a uma condição de 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 atual, 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 ocorrência e identificação de planos com rotulagem semântica (por exemplo, piso, paredes e mesas). Consulte o guia para desenvolvedores e saiba mais sobre como trabalhar com o ARCore para Jetpack XR.

  • Session: o ARCore para Jetpack XR usa o Jetpack XR Runtime nos bastidores para impulsionar 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. Use subscribe para receber notificações sobre os aviões detectados mais recentemente ou state para receber notificações sobre as mudanças em um avião 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. unpersist os dispositivos quando eles 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 um AnchorEntity, use getAnchor para recuperar a âncora de suporte.

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

  • O uso no emulador é compatível, 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 imediatamente a atividade.

  • Em algumas circunstâncias, um RuntimeException pode ser gerado erroneamente ao chamar persist com a mensagem "Anchor was not persisted". Nessas circunstâncias, a função ainda será executada com êxito e a âncora será mantida. Recomendamos envolver a chamada para persist com um bloco try como solução alternativa.