Rastreio de código QR

Antes de começar aqui, recomendamos que dê uma olhada no nosso artigo de rastreio de código QR que contém uma visão geral, uma tabela de suporte ao dispositivo e as melhores práticas.

Deteção de códigos QR

Adicionar a capacidade da webcam

Terá de adicionar a capacidade webcam ao seu manifesto para detetar códigos QR. Esta capacidade é necessária, uma vez que os dados dentro dos códigos detetados no ambiente do utilizador podem conter informações sensíveis.

A permissão pode ser solicitada ligando QRCodeWatcher.RequestAccessAsync() para:

C#:

await QRCodeWatcher.RequestAccessAsync();

A permissão deve ser solicitada antes de construir um objeto QRCodeWatcher.

Enquanto a deteção de código QR requer a webcam capacidade, a deteção ocorre usando as câmaras de rastreio do dispositivo. Isto proporciona um FOV de deteção mais amplo e uma melhor vida útil da bateria em comparação com a deteção com a câmara fotográfica/vídeo (PV) do dispositivo.

Pode utilizar a API de deteção de código QR em Unidade sem importar MRTK instalando o pacote NuGet utilizando o NuGet for Unitity. Se quiser ter uma noção de como funciona, descarregue a aplicação Unidadede amostras. A aplicação da amostra tem exemplos para exibir um quadrado holográfico sobre códigos QR e dados associados tais como GUID, tamanho físico, timetamp e dados descodificados.

Utilização de OpenXR

Ao utilizar o plugin OpenXR, pegue o da API QR e utilize a Microsoft.MixedReality.OpenXR.SpatialGraphNode API para localizar o código QR.

Para referência, temos um projeto de amostra de rastreamento QR na GitHub com uma explicação de utilização mais detalhada para a API.

Obter o sistema de coordenadas para um código QR

Cada código QR detetado expõe um sistema de coordenadas espaciais alinhado com o código QR no canto superior esquerdo do quadrado de deteção rápida no canto superior esquerdo da esquerda superior esquerda:

Sistema de coordenadas de código QR

Quando convertido em coordenadas de unidade, o eixo Z aponta para fora do papel e é canhoto.

Ver também