ARCore para Jetpack XR
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.
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 bibliotecaxr:arcore:arcore-guava
para acessar APIs compatíveis. (Iffcb4, b/422773524). Anchor.persistAsync()
adicionado aAnchorGuava
para uso por desenvolvedores Java. (I4af1c, b/425984631).Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface)
adicionado aEarthGuava
para uso por desenvolvedores Java. (I66357, b/425992992)- Os desenvolvedores Java vão usar as funções de extensão para
GltfModel.createAsync
emGltfModel.kt
. As funções assíncronas emGltfModel
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
eHandJointType
foram movidos do ARCore para o ambiente de execução.Hand.State.isActive (boolean)
mudou paraHand.State.trackingState (androidx.xr.runtime.TrackingState)
.Anchor.load
retornaAnchor.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
eHand.right
para acessar as informações de rastreamento. - As APIs que geram uma âncora (
Anchor.create
,Anchor.load
,Plane.createAnchor
) agora retornamAnchorCreateResult
e implementamAnchorCreateResourcesExhausted
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 umLabel
que o descreve semanticamente. Usesubscribe
para receber notificações sobre os aviões detectados mais recentemente oustate
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 (usandocreate
) ou a umTrackable
(usandocreateAnchor
).As âncoras podem ser reutilizadas em várias sessões. Use
persist
para armazená-los,getPersistedAnchorUuids
para enumerá-los eload
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, usegetAnchor
para recuperar a âncora de suporte.Ofereça interações naturais do usuário usando
hitTest
. Um hitTest usa umRay
para determinar quais conteúdos ele cruza e criar umAnchor
desse local. Considere fazer um hitTest de umInputEvent
.
Problemas conhecidos
Pode haver um atraso entre a chamada de
unpersist
e a remoção do UUID dos resultados retornados porgetPersistedAnchorUuids
.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 chamarpersist
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 parapersist
com um blocotry
como solução alternativa.