ARCore para Jetpack XR

Traga 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
12 de dezembro de 2024 - - - 1.0.0-alpha01

Declarar dependências

Para adicionar uma dependência ao ARCore para o 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-alpha01"
}

Kotlin

dependencies {
    implementation("androidx.xr.arcore:arcore:1.0.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.0

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 existente, a biblioteca ARCore para Jetpack XR oferece recursos para mesclar conteúdo digital com o mundo real. Essa biblioteca inclui rastreamento de movimento, âncoras persistentes, testes de acerto e identificação de plano 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 o Jetpack XR.

  • Session: o ARCore para Jetpack XR usa o ambiente de execução do Jetpack XR para melhorar a funcionalidade. Você vai usar uma sessão para interagir com a maioria das APIs ARCore para Jetpack XR. Confira a documentação dela.

  • 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 mais recentes detectados ou state para receber notificações sobre as mudanças em um avião específico.

  • Anchor: uma ligação 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á-los, getPersistedAnchorUuids para enumerá-los e load para recuperá-los. unpersist-as quando não estiverem mais em uso.

    • As ancoras são interoperáveis entre o ARCore para Jetpack XR e o Jetpack SceneCore. É possível criar uma AnchorEntity usando uma âncora ou, se você tiver uma 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 para criar um Anchor nesse 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 dela 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 causar uma falha.

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

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

  • Em determinadas circunstâncias, uma RuntimeException pode ser gerada incorretamente ao chamar persist com a mensagem "A âncora não foi mantida". Nessas circunstâncias, a função ainda terá sucesso e a âncora será mantida. Recomendamos agrupar a chamada para persist com um bloco try como solução alternativa.