Controlo de código QR

Antes de começar aqui, recomendamos que consulte o nosso artigo de descrição geral do controlo de códigos QR que contém uma descrição geral, uma tabela de suporte de dispositivos e melhores práticas.

Detetar códigos QR

Adicionar a capacidade da câmara Web

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

A permissão pode ser pedida ao chamar QRCodeWatcher.RequestAccessAsync():

C#:

await QRCodeWatcher.RequestAccessAsync();

A permissão tem de ser pedida antes de construir um objeto QRCodeWatcher.

Embora a deteção de código QR exija a webcam capacidade, a deteção ocorre com as câmaras de controlo do dispositivo. Isto proporciona um FOV de deteção mais amplo e uma melhor duração da bateria em comparação com a deteção com a câmara de fotografia/vídeo (PV) do dispositivo.

Pode utilizar a API de deteção de código QR no Unity sem importar o MRTK ao instalar o pacote NuGet com o NuGet para Unity. Se quiser saber como funciona, transfira a aplicação Unity de exemplo. A aplicação de exemplo tem exemplos para apresentar um quadrado holográfico sobre códigos QR e dados associados, como GUID, tamanho físico, carimbo de data/hora e dados descodificados.

Utilizar o OpenXR

Ao utilizar o plug-in OpenXR, pegue no SpatialGraphNodeId da API QR e utilize a Microsoft.MixedReality.OpenXR.SpatialGraphNode API para localizar o código QR.

Para referência, temos um projeto de exemplo de controlo de QR no GitHub com uma explicação de utilização mais detalhada para a SpatialGraphNode 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:

Sistema de coordenadas de código QR

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

Ver também