Ir para o conteúdo do rodapé
USANDO O IRONBARCODE

Como criar um aplicativo SDK de leitor de código de barras .NET MAUI

.NET MAUI cumpre a promessa de um único código base que mira o Android, iOS e Windows. O desafio surge quando você precisa integrar recursos de hardware nativo como a digitalização de códigos de barras. Fazer a ponte das APIs de câmera manualmente significa configurações específicas de plataforma, diretivas de compilação condicionais e horas de depuração. Há um caminho mais rápido.

Este tutorial mostra como construir um leitor de código de barras multiplataforma funcional em .NET MAUI usando o IronBarcode. Você configurará o projeto, configurará permissões de plataforma, digitalizará códigos de barras a partir de arquivos de imagem, lerá códigos de barras de documentos PDF e lidará com múltiplas simbologias com opções de digitalização -- tudo com código que você pode executar em qualquer alvo suportado.

Comece seu teste gratuito e siga os passos abaixo.

NuGet Instalar com NuGet

PM >  Install-Package BarCode

Confira o IronBarcode no NuGet para uma instalação rápida. Com mais de 10 milhões de downloads, ele está transformando o desenvolvimento de PDFs com C#. Você também pode baixar a DLL .

Como Configurar um SDK de Leitor de Código de Barras em .NET MAUI?

Configurar um SDK de leitor de código de barras em .NET MAUI requer a criação de um novo projeto, a instalação do pacote NuGet e a configuração das permissões da plataforma. Todo o processo de configuração leva alguns minutos no Visual Studio.

Crie o Projeto .NET MAUI

Abra o Visual Studio e crie um novo projeto de Aplicativo .NET MAUI. Dê ao projeto um nome descritivo como "BarcodeScanner" e selecione .NET 8 ou posterior como a estrutura de destino. O Visual Studio gera a estrutura de projeto padrão com pastas específicas para Android e iOS.

Se você está mirando .NET 10, o mesmo modelo de projeto se aplica. Atualize a propriedade <TargetFrameworks> no seu arquivo .csproj para incluir net10.0-android, net10.0-ios e net10.0-windows10.0.19041.0 conforme necessário. Consulte a documentação de plataformas suportadas do .NET MAUI para a lista completa de identificadores de estrutura de destino e requisitos mínimos de versão do SO.

Instale o IronBarcode

Instale o pacote NuGet do IronBarcode usando o Console do Gerenciador de Pacotes:

Install-Package BarCode

Este comando baixa e instala o SDK de leitor de código de barras junto com todas as dependências necessárias para o aplicativo .NET MAUI.

Configure Permissões de Plataforma

Mesmo ao digitalizar a partir de arquivos de imagem, em vez de um fluxo de câmera ao vivo, é uma boa prática configurar as seguintes permissões para o aplicativo de leitor de código de barras .NET MAUI.

Para Android, adicione o seguinte a Platforms/Android/AndroidManifest.xml:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
XML

Para iOS, adicione estas entradas em Platforms/iOS/Info.plist:

<key>NSPhotoLibraryUsageDescription</key>
<string>Access needed to select barcode images for scanning.</string>
<key>NSCameraUsageDescription</key>
<string>Camera permission for barcode scanning.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Access needed to select barcode images for scanning.</string>
<key>NSCameraUsageDescription</key>
<string>Camera permission for barcode scanning.</string>
XML

Inicialize o SDK

Defina sua chave de licença cedo no ciclo de vida do aplicativo para garantir que o IronBarcode esteja totalmente ativado antes que qualquer chamada de digitalização seja feita. Coloque a ativação em MauiProgram.cs:

using IronBarCode;

var builder = MauiApp.CreateBuilder();
builder
    .UseMauiApp<App>()
    .ConfigureFonts(fonts =>
    {
        fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
    });

// Activate IronBarcode before the app starts
License.LicenseKey = "YOUR_LICENSE_KEY_HERE";

return builder.Build();
using IronBarCode;

var builder = MauiApp.CreateBuilder();
builder
    .UseMauiApp<App>()
    .ConfigureFonts(fonts =>
    {
        fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
    });

// Activate IronBarcode before the app starts
License.LicenseKey = "YOUR_LICENSE_KEY_HERE";

return builder.Build();
$vbLabelText   $csharpLabel

O IronBarcode fornece uma licença de teste gratuita para desenvolvimento e teste. Defina a chave uma vez na inicialização; todas as chamadas subsequentes para BarcodeReader e BarcodeWriter dentro do mesmo processo usam a licença ativada.

Como Ler Códigos de Barras de Arquivos de Imagem?

A funcionalidade central de qualquer leitor de código de barras MAUI é ler códigos de barras a partir de imagens selecionadas. O método BarcodeReader.Read() aceita um caminho de arquivo e retorna uma coleção de objetos BarcodeResult, um para cada código de barras detectado.

Desenhe a Interface do Usuário

Crie uma interface limpa em MainPage.xaml que permita aos usuários selecionar um arquivo de imagem e visualizar os dados do código de barras escaneado:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="BarcodeScanner.MainPage">
    <VerticalStackLayout Padding="20" Spacing="15">
        <Label Text=".NET MAUI Barcode Scanner" FontSize="24" HorizontalOptions="Center"/>
        <Button Text="Select Image to Scan" Clicked="OnSelectImageClicked"/>
        <Image x:Name="SelectedImageView" HeightRequest="200"/>
        <Label x:Name="ResultLabel" FontSize="16"/>
    </VerticalStackLayout>
</ContentPage>
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="BarcodeScanner.MainPage">
    <VerticalStackLayout Padding="20" Spacing="15">
        <Label Text=".NET MAUI Barcode Scanner" FontSize="24" HorizontalOptions="Center"/>
        <Button Text="Select Image to Scan" Clicked="OnSelectImageClicked"/>
        <Image x:Name="SelectedImageView" HeightRequest="200"/>
        <Label x:Name="ResultLabel" FontSize="16"/>
    </VerticalStackLayout>
</ContentPage>
XML

Implementar a Digitalização de Códigos de Barras

Adicione a lógica de escaneamento a MainPage.xaml.cs. Este código lida com a seleção de imagens via a API FilePicker MAUI e passa o caminho do arquivo escolhido para o IronBarcode:

using IronBarCode;

public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
    }

    private async void OnSelectImageClicked(object sender, EventArgs e)
    {
        var result = await FilePicker.PickAsync(new PickOptions
        {
            FileTypes = FilePickerFileType.Images,
            PickerTitle = "Select a barcode image"
        });

        if (result != null)
        {
            // Display the selected image
            SelectedImageView.Source = ImageSource.FromFile(result.FullPath);

            // Read barcodes from the image file
            var barcodes = BarcodeReader.Read(result.FullPath);

            ResultLabel.Text = barcodes.Any()
                ? $"Found: {barcodes.First().Value}"
                : "No barcodes detected in selected image.";
        }
    }
}
using IronBarCode;

public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
    }

    private async void OnSelectImageClicked(object sender, EventArgs e)
    {
        var result = await FilePicker.PickAsync(new PickOptions
        {
            FileTypes = FilePickerFileType.Images,
            PickerTitle = "Select a barcode image"
        });

        if (result != null)
        {
            // Display the selected image
            SelectedImageView.Source = ImageSource.FromFile(result.FullPath);

            // Read barcodes from the image file
            var barcodes = BarcodeReader.Read(result.FullPath);

            ResultLabel.Text = barcodes.Any()
                ? $"Found: {barcodes.First().Value}"
                : "No barcodes detected in selected image.";
        }
    }
}
$vbLabelText   $csharpLabel

Saída

.NET MAUI Barcode Scanner SDK: Construa um scanner multiplataforma em minutos: Imagem 1 - Saída do código de barras escaneado

O método BarcodeReader.Read() analisa a imagem selecionada e retorna todos os códigos de barras detectados. O IronBarcode reconhece automaticamente múltiplas simbologias de códigos de barras incluindo QR codes, Code 128, Code 39, EAN-13, e muitos outros formatos suportados. A coleção de resultados expõe propriedades como BarcodeType, Value, PageNumber e coordenadas do retângulo delimitador para cada código detectado.

Como Escanear Códigos de Barras de Documentos PDF?

Uma capacidade que distingue o IronBarcode de muitas alternativas é a leitura de códigos de barras diretamente de arquivos PDF. Isso é essencial para aplicativos .NET MAUI que lidam com fluxos de trabalho de documentos — manifestos de embarque, ordens de compra, registros médicos, e casos de uso semelhantes que dependem de códigos de barras incorporados em PDF.

O método BarcodeReader.ReadPdf() aceita um caminho de arquivo e retorna a mesma coleção BarcodeResult que o leitor de imagem, com uma propriedade adicional PageNumber que identifica de qual página do PDF cada código de barras veio:

using IronBarCode;

private async void OnSelectPdfClicked(object sender, EventArgs e)
{
    var result = await FilePicker.PickAsync(new PickOptions
    {
        PickerTitle = "Select a PDF with barcodes"
    });

    if (result != null)
    {
        // Read barcodes from every page of the PDF
        var barcodes = BarcodeReader.ReadPdf(result.FullPath);

        var output = string.Join("\n", barcodes.Select(b =>
            $"Page {b.PageNumber}: [{b.BarcodeType}] {b.Value}"));

        await DisplayAlert("Scan Results", output.Length > 0 ? output : "No barcodes found.", "OK");
    }
}
using IronBarCode;

private async void OnSelectPdfClicked(object sender, EventArgs e)
{
    var result = await FilePicker.PickAsync(new PickOptions
    {
        PickerTitle = "Select a PDF with barcodes"
    });

    if (result != null)
    {
        // Read barcodes from every page of the PDF
        var barcodes = BarcodeReader.ReadPdf(result.FullPath);

        var output = string.Join("\n", barcodes.Select(b =>
            $"Page {b.PageNumber}: [{b.BarcodeType}] {b.Value}"));

        await DisplayAlert("Scan Results", output.Length > 0 ? output : "No barcodes found.", "OK");
    }
}
$vbLabelText   $csharpLabel

Saída

.NET MAUI Barcode Scanner SDK: Construa um scanner multiplataforma em minutos: Imagem 2 - Saída para escaneamento de um PDF com códigos QR dentro

O método ReadPdf() escaneia todas as páginas de um PDF e retorna dados de código de barras junto com números de página, tornando simples o processamento de documentos que contêm múltiplos códigos de barras. Se o PDF abrange dezenas de páginas, considere passar um objeto BarcodeReaderOptions com PageNumbers definido para um intervalo específico para limitar o escaneamento às páginas relevantes e reduzir o tempo de processamento.

Como Lidamos com Múltiplos Códigos de Barras e QR Codes?

Aplicativos de produção frequentemente precisam detectar múltiplos códigos de barras de uma única imagem ou filtrar resultados por tipo de código de barras. A classe BarcodeReaderOptions expõe as propriedades de configuração que controlam o comportamento de detecção. Definir ExpectMultipleBarcodes para true instrui o leitor a continuar escaneando após a primeira correspondência, em vez de parar cedo:

using IronBarCode;

// Configure the reader for multi-barcode detection with type filtering
var options = new BarcodeReaderOptions
{
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
    Speed = ReadingSpeed.Balanced
};

var barcodes = BarcodeReader.Read(imagePath, options);

foreach (var barcode in barcodes)
{
    Console.WriteLine($"Type: {barcode.BarcodeType}, Value: {barcode.Value}");
}
using IronBarCode;

// Configure the reader for multi-barcode detection with type filtering
var options = new BarcodeReaderOptions
{
    ExpectMultipleBarcodes = true,
    ExpectBarcodeTypes = BarcodeEncoding.QRCode | BarcodeEncoding.Code128,
    Speed = ReadingSpeed.Balanced
};

var barcodes = BarcodeReader.Read(imagePath, options);

foreach (var barcode in barcodes)
{
    Console.WriteLine($"Type: {barcode.BarcodeType}, Value: {barcode.Value}");
}
$vbLabelText   $csharpLabel

A propriedade Speed controla o equilíbrio entre tempo de escaneamento e precisão. ReadingSpeed.Faster prioriza por produtividade, adequado para aplicativos que escaneiam imagens de alta qualidade em massa. ReadingSpeed.ExtraSlow aplica passagens de correção de imagem mais agressivas para entradas desafiadoras — baixo contraste, ângulos inclinados ou códigos parcialmente ocultos. ReadingSpeed.Balanced é o ponto de partida correto para a maioria dos aplicativos.

A enumeração BarcodeEncoding suporta combinações bit a bit, permitindo restringir o escaneamento exatamente às simbologias relevantes para o caso de uso, sem penalizar o desempenho com verificações desnecessárias.

Como Ler Códigos de Barras de Streams de Memória?

Caminhos de arquivos funcionam bem na maioria dos cenários, mas alguns fluxos de trabalho do .NET MAUI passam dados de imagem através da memória — quadros capturados de uma prévia de câmera, bytes baixados de uma API REST, ou dados de imagem gerados em processo. IronBarcode suporta entradas System.IO.Stream diretamente na sobrecarga BarcodeReader.Read():

using IronBarCode;
using System.IO;

// Read a barcode from a MemoryStream (e.g., an in-memory image buffer)
private BarcodeResult[] ReadFromStream(Stream imageStream)
{
    return BarcodeReader.Read(imageStream);
}

// Example: download an image and scan without writing to disk
private async Task<string> ScanDownloadedBarcode(string imageUrl)
{
    using var httpClient = new HttpClient();
    using var stream = await httpClient.GetStreamAsync(imageUrl);
    using var memoryStream = new MemoryStream();

    await stream.CopyToAsync(memoryStream);
    memoryStream.Position = 0;

    var barcodes = BarcodeReader.Read(memoryStream);
    return barcodes.Any() ? barcodes.First().Value : string.Empty;
}
using IronBarCode;
using System.IO;

// Read a barcode from a MemoryStream (e.g., an in-memory image buffer)
private BarcodeResult[] ReadFromStream(Stream imageStream)
{
    return BarcodeReader.Read(imageStream);
}

// Example: download an image and scan without writing to disk
private async Task<string> ScanDownloadedBarcode(string imageUrl)
{
    using var httpClient = new HttpClient();
    using var stream = await httpClient.GetStreamAsync(imageUrl);
    using var memoryStream = new MemoryStream();

    await stream.CopyToAsync(memoryStream);
    memoryStream.Position = 0;

    var barcodes = BarcodeReader.Read(memoryStream);
    return barcodes.Any() ? barcodes.First().Value : string.Empty;
}
$vbLabelText   $csharpLabel

A sobrecarga de fluxo aceita qualquer subclasse Stream, incluindo MemoryStream, FileStream e fluxos de rede. A biblioteca lida com a detecção de formato internamente, então você não precisa especificar o tipo de imagem antes de chamar Read().

Como Gerar Códigos de Barras em um App MAUI?

IronBarcode lida tanto com a geração quanto com a leitura de códigos de barras. A classe BarcodeWriter produz códigos de barras como arquivos de imagem, objetos Bitmap ou instâncias Stream que você pode exibir em linha em uma visualização MAUI. Isso é útil para aplicativos de inventário que precisam imprimir ou compartilhar códigos de barras junto com a funcionalidade de digitalização:

using IronBarCode;

// Generate a QR code and display it in a MAUI Image control
private async void OnGenerateQrClicked(object sender, EventArgs e)
{
    // Create a QR code barcode
    var qrCode = QRCodeWriter.CreateQrCode(
        value: "https://ironsoftware.com/csharp/barcode/",
        qrCodeSize: 500,
        errorCorrection: QRCodeWriter.QrErrorCorrectionLevel.Medium
    );

    // Save to a temporary file and display
    var tempPath = Path.Combine(FileSystem.CacheDirectory, "generated-qr.png");
    qrCode.SaveAsPng(tempPath);

    GeneratedImageView.Source = ImageSource.FromFile(tempPath);
}
using IronBarCode;

// Generate a QR code and display it in a MAUI Image control
private async void OnGenerateQrClicked(object sender, EventArgs e)
{
    // Create a QR code barcode
    var qrCode = QRCodeWriter.CreateQrCode(
        value: "https://ironsoftware.com/csharp/barcode/",
        qrCodeSize: 500,
        errorCorrection: QRCodeWriter.QrErrorCorrectionLevel.Medium
    );

    // Save to a temporary file and display
    var tempPath = Path.Combine(FileSystem.CacheDirectory, "generated-qr.png");
    qrCode.SaveAsPng(tempPath);

    GeneratedImageView.Source = ImageSource.FromFile(tempPath);
}
$vbLabelText   $csharpLabel

A classe QRCodeWriter suporta todos os quatro níveis de correção de erros de QR (Baixo, Médio, Quartil, Alto), dimensionamento personalizado e opções de estilo, incluindo controle de cor de primeiro plano/fundo. Para simbologias não-QR, use BarcodeWriter.CreateBarcode() com o valor BarcodeEncoding apropriado. A referência de API de geração de código de barras documenta todos os formatos de saída suportados.

Quais São as Principais Capacidades Desta Biblioteca de Scanner de Códigos de Barras?

IronBarcode oferece várias vantagens para projetos de digitalização de códigos de barras .NET MAUI que o distinguem de alternativas de código aberto como o ZXing.Net.MAUI:

Capacidades do IronBarcode para desenvolvimento .NET MAUI
CapacidadeDetalhe
Suporte multiplataformaAlvos: Android, iOS e Windows a partir de um único pacote NuGet
Múltiplas fontes de entradaDigitalização a partir de caminhos de arquivos, fluxos de memória, e documentos PDF
Cobertura de formatoDecodifica mais de 30 simbologias 1D e 2D incluindo QR, Data Matrix, e PDF417
Geração de código de barrasProduz QR codes e códigos de barras 1D como saída em PNG, bitmap, ou stream
Correção de imagemLida automaticamente com entradas rotacionadas, inclinadas, e de baixo contraste
Sem dependência de SDK nativoBiblioteca pura .NET sem necessidade de vinculações nativas específicas de plataforma

O ponto "sem dependência de SDK nativo" importa em projetos .NET MAUI porque as bibliotecas nativas específicas de plataforma requerem etapas de vinculação separadas para cada alvo. IronBarcode evita essa complexidade totalmente, o que significa que a mesma referência NuGet produz binários funcionais para todas as três plataformas suportadas sem configuração adicional.

Para uma lista completa de formatos de código de barras suportados, veja a documentação de formatos suportados pelo IronBarcode. Para preços e termos de licenciamento para implantação em produção, reveja a página de licenciamento do IronBarcode.

Quais são as melhores práticas para escaneamento de código de barras em produção?

Implantar um leitor de código de barras para produção requer atenção a algumas áreas além da chamada básica de leitura. As diretrizes seguintes abordam os pontos de falha mais comuns em aplicativos .NET MAUI de código de barras.

Escolha a velocidade de leitura certa. ReadingSpeed.Balanced lida corretamente com a maioria das imagens do mundo real. Reserve ReadingSpeed.ExtraSlow para escaneamentos de documentos impressos ou imagens que os usuários não possam capturar novamente. Evite ReadingSpeed.ExtraSlow para fluxos de trabalho de alto volume, pois cada escaneamento leva consideravelmente mais tempo.

Filtre por tipos esperados. Se o aplicativo processa apenas códigos QR, defina ExpectBarcodeTypes = BarcodeEncoding.QRCode. Restringir o espaço de busca reduz o tempo de processamento e elimina falsos positivos de outras simbologias presentes em gráficos de fundo.

Use ExpectMultipleBarcodes apenas quando necessário. Configurar isso para true sempre faz o leitor realizar passagens adicionais. Para entradas com um único código de barras, mantenha o padrão (false) para que o escaneamento retorne assim que o primeiro código válido for encontrado.

Lide de forma elegante com resultados vazios. BarcodeReader.Read() retorna um array vazio em vez de lançar exceções quando nenhum código de barras é detectado. Verifique .Any() antes de acessar First() e apresente uma mensagem clara ao usuário. Um aviso de tentativa com orientações ("certifique-se de que o código de barras está bem iluminado e centralizado") melhora mais a experiência do usuário do que um erro genérico.

Cacheie o objeto de opções. Criar uma instância de BarcodeReaderOptions em cada escaneamento adiciona alocações. Construa as opções uma vez a nível de classe e reutilize em chamadas.

Consulte o guia de solução de problemas do IronBarcode e o tutorial do leitor de código de barras para orientações adicionais sobre como diagnosticar falhas de digitalização e otimizar o desempenho.

Quais são os seus próximos passos?

Construir um scanner de código de barras .NET MAUI com IronBarcode requer a instalação de um único pacote NuGet, configuração das permissões da plataforma e chamada de BarcodeReader.Read() com um caminho de arquivo ou fluxo. A mesma API tem como alvo Android, iOS e Windows sem ramos de código específicos de plataforma.

Para estender ainda mais o aplicativo, considere os seguintes recursos:

Inicie sua avaliação gratuita para obter uma chave de licença de desenvolvimento, ou explore opções de licenciamento para implantação em produção.

Perguntas frequentes

O que é .NET MAUI e por que a integração da leitura de código de barras é um desafio?

O .NET MAUI é um framework de interface de usuário multiplataforma que oferece suporte a Android, iOS e Windows a partir de uma única base de código. A leitura de códigos de barras é um desafio, pois cada plataforma expõe APIs de câmera e armazenamento diferentes. O IronBarcode fornece uma API .NET unificada que lida com as diferenças entre as plataformas.

Quais formatos de código de barras o IronBarcode suporta em aplicativos .NET MAUI ?

O IronBarcode suporta mais de 30 simbologias de código de barras, incluindo QR Code, Code 128, Code 39, EAN-13, EAN-8, UPC-A, UPC-E, Data Matrix, PDF417, Aztec e ITF. Use a enumeração BarcodeEncoding para filtrar por formatos específicos.

O IronBarcode consegue ler códigos de barras de arquivos PDF em um aplicativo .NET MAUI ?

Sim. O método BarcodeReader.ReadPdf() lê todas as páginas de um documento PDF e retorna uma coleção BarcodeResult. Cada resultado inclui o valor do código de barras, o tipo e o número da página.

O IronBarcode funciona em todas as plataformas de destino do .NET MAUI ?

O IronBarcode oferece suporte a plataformas Android, iOS e Windows em um projeto .NET MAUI usando um único pacote NuGet . Não são necessárias vinculações de SDK nativas específicas da plataforma.

Como ler vários códigos de barras a partir de uma única imagem?

Defina ExpectMultipleBarcodes = true em BarcodeReaderOptions e passe o objeto de opções para BarcodeReader.Read(). O leitor fará passagens de leitura adicionais para detectar todos os códigos de barras na imagem.

Qual a diferença entre ReadingSpeed.Faster e ReadingSpeed.ExtraSlow?

A opção ReadingSpeed.Faster prioriza a taxa de transferência e funciona bem para imagens de alta qualidade. Já a opção ReadingSpeed.ExtraSlow aplica uma correção de imagem mais agressiva e é adequada para entradas complexas, como códigos de barras com baixo contraste, rotacionados ou parcialmente ocluídos.

O IronBarcode consegue ler códigos de barras de um MemoryStream?

Sim. O método BarcodeReader.Read() aceita um parâmetro System.IO.Stream, que inclui MemoryStream, FileStream e fluxos de rede. Isso permite a leitura de dados de imagem na memória sem a necessidade de gravação em disco.

Como gerar um código QR em um aplicativo .NET MAUI com IronBarcode?

Utilize o método `QRCodeWriter.CreateQrCode()` com o valor de destino, o tamanho e o nível de correção de erros. Salve o resultado como um arquivo PNG usando o método `SaveAsPng()` e exiba-o em um controle de imagem MAUI utilizando o método `ImageSource.FromFile()`.

Quais permissões são necessárias para a leitura de código de barras em um aplicativo Android .NET MAUI ?

Adicione as permissões android.permission.READ_EXTERNAL_STORAGE e android.permission.CAMERA ao AndroidManifest.xml. Para iOS, adicione as chaves NSPhotoLibraryUsageDescription e NSCameraUsageDescription ao Info.plist.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me