Saltar al pie de página
USO DE IRONBARCODE

Cómo crear una aplicación SDK para escáner de código de barras .NET MAUI

.NET MAUI cumple la promesa de una única base de código dirigida a Android, iOS y Windows. El desafío surge cuando es necesario integrar funciones de hardware nativas, como el escaneo de códigos de barras. Conectar las API de la cámara manualmente implica configuraciones específicas de la plataforma, directivas de compilación condicionales y horas de depuración. Hay un camino más rápido.

Este tutorial le muestra cómo construir un escáner de código de barras multiplataforma funcional en .NET MAUI usando IronBarcode . Configurará el proyecto, configurará los permisos de la plataforma, escaneará códigos de barras de archivos de imagen, leerá códigos de barras de documentos PDF y manejará múltiples simbologías con opciones de escaneo, todo con un código que puede ejecutar en cualquier destino compatible.

Comience su prueba gratuita y siga los pasos a continuación.

NuGet Instalar con NuGet

PM >  Install-Package BarCode

Echa un vistazo a IronBarcode en NuGet para una instalación rápida. Con más de 10 millones de descargas, está transformando el desarrollo de PDF con C#. También puede descargar el DLL.

¿Cómo configurar un SDK de escáner de código de barras en .NET MAUI?

Para configurar un SDK de escáner de código de barras .NET MAUI es necesario crear un nuevo proyecto, instalar el paquete NuGet y configurar los permisos de la plataforma. Todo el proceso de configuración tarda unos minutos en Visual Studio.

Crear el proyecto .NET MAUI

Abre Visual Studio y crea un nuevo proyecto .NET MAUI App. Nombre el proyecto con algo descriptivo como "BarcodeScanner" y seleccione .NET 8 o posterior como marco de destino. Visual Studio genera la estructura de proyecto predeterminada con carpetas específicas de la plataforma para Android e iOS.

Si su objetivo es .NET 10, se aplica la misma plantilla de proyecto. Actualice la propiedad <TargetFrameworks> en su archivo .csproj para incluir net10.0-android, net10.0-ios y net10.0-windows10.0.19041.0 según sea necesario. Consulte la documentación de las plataformas compatibles con .NET MAUI para obtener la lista completa de nombres de marco de destino y los requisitos mínimos de versión del sistema operativo.

Instalar IronBarcode

Instale el paquete NuGet IronBarcode mediante la consola del administrador de paquetes:

Install-Package BarCode

Este comando descarga e instala el SDK del escáner de código de barras junto con todas las dependencias necesarias para la aplicación .NET MAUI .

Configurar permisos de plataforma

Incluso cuando se escanea desde archivos de imagen en lugar de una transmisión de cámara en vivo, es una buena práctica configurar los siguientes permisos para la aplicación de escáner de código de barras .NET MAUI .

Para Android, agregue lo siguiente 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, agregue estas entradas a 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

Iniciar el SDK

Configure su clave de licencia al comienzo del ciclo de vida de la aplicación para garantizar que IronBarcode esté completamente activado antes de realizar cualquier llamada de escaneo. Coloque la activación en 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

IronBarcode ofrece una licencia de prueba gratuita para desarrollo y pruebas. Establezca la clave una vez al inicio; todas las llamadas posteriores a BarcodeReader y BarcodeWriter dentro del mismo proceso usan la licencia activada.

¿Cómo se leen códigos de barras desde archivos de imagen?

La funcionalidad principal de cualquier escáner de código de barras MAUI es leer códigos de barras de imágenes seleccionadas. El método BarcodeReader.Read() acepta una ruta de archivo y devuelve una colección de objetos BarcodeResult, uno por cada código de barras detectado.

Diseñar la interfaz de usuario

Cree una interfaz limpia en MainPage.xaml que permita a los usuarios seleccionar un archivo de imagen y ver los datos del 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 el escaneado de códigos de barras

Agregue la lógica de escaneo a MainPage.xaml.cs. Este código maneja la selección de imágenes a través de la API MAUI FilePicker y pasa la ruta del archivo elegido a 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

Resultado

 SDK de escáner de código de barras .NET MAUI : cree un escáner multiplataforma en minutos: Imagen 1 - Salida del código de barras escaneado

El método BarcodeReader.Read() analiza la imagen seleccionada y devuelve todos los códigos de barras detectados. IronBarcode reconoce automáticamente múltiples simbologías de códigos de barras, incluidos códigos QR, Código 128, Código 39, EAN-13 y muchos otros formatos compatibles . La colección de resultados expone propiedades como BarcodeType, Value, PageNumber y coordenadas del cuadro delimitador para cada código detectado.

¿Cómo escanear códigos de barras de documentos PDF?

Una capacidad que distingue a IronBarcode de muchas alternativas es la lectura de códigos de barras directamente desde archivos PDF. Esto es esencial para las aplicaciones .NET MAUI que manejan flujos de trabajo de documentos (manifiestos de envío, órdenes de compra, registros médicos y casos de uso similares que dependen de códigos de barras integrados en PDF).

El método BarcodeReader.ReadPdf() acepta una ruta de archivo y devuelve la misma colección BarcodeResult que el lector de imágenes, con una propiedad PageNumber adicional que identifica de qué página PDF proviene cada código de barras:

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

Resultado

 SDK de escáner de código de barras .NET MAUI : cree un escáner multiplataforma en minutos: Imagen 2 - Salida para escanear un PDF con códigos QR dentro de él

El método ReadPdf() escanea todas las páginas de un PDF y devuelve datos de código de barras junto con los números de página, lo que facilita el procesamiento de documentos que contienen múltiples códigos de barras. Si el PDF abarca docenas de páginas, considere pasar un objeto BarcodeReaderOptions con PageNumbers establecido en un rango específico para limitar el escaneo a las páginas relevantes y reducir el tiempo de procesamiento.

¿Cómo gestionar varios códigos de barras y códigos QR?

Las aplicaciones de producción a menudo necesitan detectar múltiples códigos de barras de una sola imagen o filtrar resultados por tipo de código de barras. La clase BarcodeReaderOptions expone las propiedades de configuración que controlan el comportamiento de detección. La configuración de ExpectMultipleBarcodes en true le indica al lector que continúe escaneando después de la primera coincidencia en lugar de detenerse antes:

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

La propiedad Speed controla el equilibrio entre el tiempo de escaneo y la precisión. ReadingSpeed.Faster prioriza el rendimiento, lo que es adecuado para aplicaciones que escanean imágenes de alta calidad en masa. ReadingSpeed.ExtraSlow aplica pasadas de corrección de imagen más agresivas para entradas desafiantes: bajo contraste, ángulos sesgados o códigos parcialmente ocluidos. ReadingSpeed.Balanced es el punto de partida correcto para la mayoría de las aplicaciones.

La enumeración BarcodeEncoding admite combinaciones bit a bit, por lo que puede restringir el escaneo exactamente a las simbologías relevantes para el caso de uso sin penalizar el rendimiento con verificaciones innecesarias.

¿Cómo se leen los códigos de barras desde los flujos de memoria?

Las rutas de archivos funcionan bien en la mayoría de los escenarios, pero algunos flujos de trabajo de .NET MAUI pasan datos de imagen a través de la memoria (fotogramas capturados de una vista previa de la cámara, bytes descargados de una API REST o datos de imagen generados en el proceso). IronBarcode admite entradas System.IO.Stream directamente en la 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

La sobrecarga de flujo acepta cualquier subclase Stream, incluidas MemoryStream, FileStream y flujos de red. La biblioteca maneja la detección de formato internamente, por lo que no es necesario especificar el tipo de imagen antes de llamar a Read().

¿Cómo generar códigos de barras en una aplicación MAUI?

IronBarcode gestiona tanto la generación como la lectura de códigos de barras. La clase BarcodeWriter produce códigos de barras como archivos de imagen, objetos Bitmap o instancias Stream que puede mostrar en línea en una vista MAUI. Esto es útil para las aplicaciones de inventario que necesitan imprimir o compartir códigos de barras junto con la funcionalidad de escaneo:

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

La clase QRCodeWriter admite los cuatro niveles de corrección de errores QR (Bajo, Medio, Cuartil, Alto), opciones de tamaño y estilo personalizadas, incluido el control de color de primer plano y fondo. Para simbologías que no sean QR, utilice BarcodeWriter.CreateBarcode() con el valor BarcodeEncoding apropiado. La referencia de la API de generación de códigos de barras documenta todos los formatos de salida admitidos.

¿Cuáles son las capacidades clave de esta biblioteca de escáneres de código de barras?

IronBarcode ofrece varias ventajas para los proyectos de escaneo de códigos de barras .NET MAUI que lo distinguen de las alternativas de código abierto como ZXing .NET.MAUI:

Capacidades de IronBarcode para el desarrollo de .NET MAUI
CapacidadDetalle
Soporte multiplataformaSe dirige a Android, iOS y Windows desde un único paquete NuGet
Múltiples fuentes de entradaEscanear desde rutas de archivos, secuencias de memoria y documentos PDF
Cobertura de formatoDecodifica más de 30 simbologías 1D y 2D, incluidas QR, Data Matrix y PDF417
Generación de códigos de barrasProduce códigos QR y códigos de barras 1D como salida PNG, de mapa de bits o de flujo
Corrección de imagenManeja automáticamente entradas rotadas, sesgadas y de bajo contraste
Sin dependencia nativa del SDKBiblioteca .NET pura que no requiere enlaces nativos específicos de la plataforma

El punto de "no hay dependencia de SDK nativo" es importante en los proyectos .NET MAUI porque las bibliotecas nativas específicas de la plataforma requieren pasos de vinculación separados para cada destino. IronBarcode evita esta complejidad por completo, lo que significa que la misma referencia NuGet produce binarios funcionales para las tres plataformas compatibles sin configuración adicional.

Para obtener una lista completa de los formatos de códigos de barras admitidos, consulte la documentación de formatos admitidos de IronBarcode . Para conocer los precios y los términos de licencia para la implementación de producción, revise la página de licencias de IronBarcode .

¿Cuáles son las mejores prácticas para el escaneo de códigos de barras en producción?

La implementación de un escáner de código de barras en producción requiere atención a algunas áreas más allá de la llamada de lectura básica. Las siguientes pautas abordan los puntos de error más comunes en las aplicaciones de código de barras .NET MAUI .

Elija la velocidad de lectura adecuada. ReadingSpeed.Balanced maneja correctamente la mayoría de las imágenes del mundo real. Reserve ReadingSpeed.ExtraSlow para escaneos de documentos impresos o imágenes que los usuarios no pueden volver a capturar. Evite ReadingSpeed.ExtraSlow para flujos de trabajo de gran volumen, ya que cada escaneo lleva considerablemente más tiempo.

Filtrar por tipos esperados. Si la aplicación solo procesa códigos QR, configure ExpectBarcodeTypes = BarcodeEncoding.QRCode. Restringir el espacio de búsqueda reduce el tiempo de procesamiento y elimina falsos positivos de otras simbologías presentes en los gráficos de fondo.

Use ExpectMultipleBarcodes solo cuando sea necesario. Configurarlo en true siempre hace que el lector realice pasadas adicionales. Para entradas de código de barras único, deje el valor predeterminado (false) para que el escaneo regrese tan pronto como se encuentre el primer código válido.

Maneje los resultados vacíos con elegancia. BarcodeReader.Read() devuelve una matriz vacía en lugar de lanzarla cuando no se detectan códigos de barras. Verifique .Any() antes de acceder a First() y presente un mensaje claro al usuario. Un mensaje de reintento con orientación ("asegúrese de que el código de barras esté bien iluminado y centrado") mejora la experiencia del usuario más que un error genérico.

Almacenar en caché el objeto de opciones. Crear una instancia BarcodeReaderOptions en cada escaneo agrega asignaciones. Construya las opciones una vez en el nivel de clase y reutilícelas en las llamadas.

Consulte la guía de solución de problemas de IronBarcode y el tutorial del lector de código de barras para obtener orientación adicional sobre cómo diagnosticar fallas de escaneo y optimizar el rendimiento.

¿Cuales son tus próximos pasos?

Para crear un escáner de código de barras .NET MAUI con IronBarcode es necesario instalar un único paquete NuGet , configurar los permisos de la plataforma y llamar a BarcodeReader.Read() con una ruta de archivo o una secuencia. La misma API está dirigida a Android, iOS y Windows sin ramas de código específicas de la plataforma.

Para ampliar aún más la aplicación, considere los siguientes recursos:

Comience su prueba gratuita para obtener una clave de licencia de desarrollo o explore las opciones de licencia para la implementación de producción.

Preguntas Frecuentes

¿Qué es .NET MAUI y por qué es difícil integrar el escaneo de códigos de barras?

.NET MAUI es un framework de interfaz de usuario multiplataforma que se adapta a Android, iOS y Windows desde una única base de código. El escaneo de códigos de barras es complejo porque cada plataforma expone diferentes API de cámara y almacenamiento. IronBarcode proporciona una API .NET unificada que gestiona las diferencias entre plataformas.

¿Qué formatos de código de barras admite IronBarcode en las aplicaciones .NET MAUI ?

IronBarcode admite más de 30 simbologías de códigos de barras, como QR Code, Code 128, Code 39, EAN-13, EAN-8, UPC-A, UPC-E, Data Matrix, PDF417, Aztec e ITF. Utilice la enumeración BarcodeEncoding para filtrar por formatos específicos.

¿Puede IronBarcode leer códigos de barras de archivos PDF en una aplicación .NET MAUI ?

Sí. El método BarcodeReader.ReadPdf() escanea todas las páginas de un documento PDF y devuelve una colección de resultados BarcodeResult. Cada resultado incluye el valor del código de barras, el tipo y el número de página.

¿ IronBarcode funciona en todas las plataformas de destino .NET MAUI ?

IronBarcode es compatible con destinos Android, iOS y Windows en un proyecto .NET MAUI mediante un único paquete NuGet . No se requieren enlaces de SDK nativos específicos de la plataforma.

¿Cómo escanear varios códigos de barras a partir de una sola imagen?

Establezca ExpectMultipleBarcodes = true en BarcodeReaderOptions y pase el objeto de opciones a BarcodeReader.Read(). El lector realizará escaneos adicionales para detectar todos los códigos de barras en la imagen.

¿Cuál es la diferencia entre ReadingSpeed.Faster y ReadingSpeed.ExtraSlow?

ReadingSpeed.Faster prioriza el rendimiento y funciona bien con imágenes de alta calidad. ReadingSpeed.ExtraSlow aplica una corrección de imagen más agresiva y es ideal para entradas complejas, como códigos de barras con bajo contraste, rotados o parcialmente ocluidos.

¿Puede IronBarcode leer códigos de barras de un MemoryStream?

Sí. BarcodeReader.Read() acepta un parámetro System.IO.Stream, que incluye MemoryStream, FileStream y flujos de red. Esto permite escanear datos de imágenes en memoria sin escribirlos en el disco.

¿Cómo generar un código QR en una aplicación .NET MAUI con IronBarcode?

Utilice QRCodeWriter.CreateQrCode() con el valor objetivo, el tamaño y el nivel de corrección de errores. Guarde el resultado como archivo PNG con SaveAsPng() y muéstrelo en un control de imagen MAUI con ImageSource.FromFile().

¿Qué permisos se necesitan para escanear códigos de barras en una aplicación Android .NET MAUI ?

Agregue android.permission.READ_EXTERNAL_STORAGE y android.permission.CAMERA a AndroidManifest.xml. Para iOS, agregue las claves NSPhotoLibraryUsageDescription y NSCameraUsageDescription a Info.plist.

Jordi Bardia
Ingeniero de Software
Jordi es más competente en Python, C# y C++. Cuando no está aprovechando sus habilidades en Iron Software, está programando juegos. Compartiendo responsabilidades para pruebas de productos, desarrollo de productos e investigación, Jordi agrega un valor inmenso a la mejora continua del producto. La experiencia variada lo mantiene ...
Leer más

Equipo de soporte de Iron

Estamos disponibles online las 24 horas, 5 días a la semana.
Chat
Email
Llámame