Xamarin.Essentials: LinternaXamarin.Essentials: Flashlight

La clase Flashlight tiene la capacidad de activar o desactivar el flash de la cámara del dispositivo y convertirlo en una linterna.The Flashlight class has the ability to turn on or off the device's camera flash to turn it into a flashlight.

Primeros pasosGet started

Para empezar a usar esta API, lea la guía de introducción para Xamarin.Essentials con el fin de asegurarse de que la biblioteca está correctamente instalada y configurada en los proyectos.To start using this API, read the getting started guide for Xamarin.Essentials to ensure the library is properly installed and set up in your projects.

Para acceder a la funcionalidad de Flashlight, se requiere la siguiente configuración específica para la plataforma.To access the Flashlight functionality the following platform specific setup is required.

Los permisos Flashlight y Camera son obligatorios y se deben configurar en el proyecto de Android.The Flashlight and Camera permissions are required and must be configured in the Android project. Se puede agregar de las siguientes maneras:This can be added in the following ways:

Abra el archivo AssemblyInfo.cs de la carpeta Propiedades y agregue lo siguiente:Open the AssemblyInfo.cs file under the Properties folder and add:

[assembly: UsesPermission(Android.Manifest.Permission.Flashlight)]
[assembly: UsesPermission(Android.Manifest.Permission.Camera)]

O BIEN, actualice el manifiesto de Android:OR Update Android Manifest:

Abra el archivo AndroidManifest.xml de la carpeta Propiedades y agregue lo siguiente dentro del nodo manifest.Open the AndroidManifest.xml file under the Properties folder and add the following inside of the manifest node.

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

O haga clic con el botón derecho en el proyecto de Android y abra las propiedades del proyecto.Or right click on the Android project and open the project's properties. En Manifiesto de Android, busque el área Permisos necesarios: y active los permisos FLASHLIGHT (Linterna) y CAMERA (Cámara).Under Android Manifest find the Required permissions: area and check the FLASHLIGHT and CAMERA permissions. Esto actualizará automáticamente el archivo AndroidManifest.xml.This will automatically update the AndroidManifest.xml file.

Mediante la adición de estos permisos Google Play filtrará automáticamente los dispositivos sin necesidad de hardware específico.By adding these permissions Google Play will automatically filter out devices without specific hardware. Para solucionarlo, agregue lo siguiente al archivo AssemblyInfo.cs del proyecto de Android:You can get around this by adding the following to your AssemblyInfo.cs file in your Android project:

[assembly: UsesFeature("android.hardware.camera", Required = false)]
[assembly: UsesFeature("android.hardware.camera.autofocus", Required = false)]

Uso de FlashlightUsing Flashlight

Agregue una referencia a Xamarin.Essentials en su clase:Add a reference to Xamarin.Essentials in your class:

using Xamarin.Essentials;

La linterna se puede activar y desactivar a través de los métodos TurnOnAsync y TurnOffAsync:The flashlight can be turned on and off through the TurnOnAsync and TurnOffAsync methods:

try
{
    // Turn On
    await Flashlight.TurnOnAsync();

    // Turn Off
    await Flashlight.TurnOffAsync();
}
catch (FeatureNotSupportedException fnsEx)
{
    // Handle not supported on device exception
}
catch (PermissionException pEx)
{
    // Handle permission exception
}
catch (Exception ex)
{
    // Unable to turn on/off flashlight
}

Detalles de implementación de la plataformaPlatform Implementation Specifics

La clase Flashlight se ha optimizado en función del sistema operativo del dispositivo.The Flashlight class has been optimized based on the device's operating system.

Nivel de API 23 y superiorAPI Level 23 and Higher

En los niveles de API más recientes, se usa el Modo Linterna para activar o desactivar la unidad de flash del dispositivo.On newer API levels, Torch Mode will be used to turn on or off the flash unit of the device.

Nivel de API 22 e inferiorAPI Level 22 and Lower

Se crea una textura de la superficie de cámara para activar o desactivar el FlashMode de la unidad de la cámara.A camera surface texture is created to turn on or off the FlashMode of the camera unit.

APIAPI