Lampe de poche

Parcourir l'exemple. Parcourir l'exemple

Dans cet article, vous découvrirez comment utiliser l'interface .NET Multi-platform App UI (.NET MAUI) IFlashlight. Avec cette interface, vous pouvez activer et désactiver la caméra de l’appareil pour émuler une lampe de poche.

L’implémentation par défaut de l’interface IFlashlight est disponible via la propriété Flashlight.Default. L'interface IFlashlight et la classe Flashlight sont contenues dans l'espace de noms Microsoft.Maui.Devices.

Get started

Pour accéder à la fonctionnalité de lampe de poche, la configuration spécifique à la plateforme suivante est requise.

Il existe deux autorisations à configurer dans votre projet : Flashlight et Camera. Ces autorisations peuvent être définies de la manière suivante :

  • Ajoutez l’autorisation basée sur l’assembly :

    Ouvrez le fichier Plateformes/Android/MainApplication.cs et ajoutez les attributs d’assembly suivants après using les directives :

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

    ou

  • Mettez à jour le manifeste Android :

    Ouvrez le fichier Platforms/Android/AndroidManifest.xml et ajoutez ce qui suit dans le nœud manifest :

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

    ou

  • Mettez à jour le manifeste Android dans l’éditeur de manifeste :

    Dans Visual Studio, double-cliquez sur le fichier Plateformes/Android/AndroidManifest.xml pour ouvrir l’éditeur de manifeste Android. Ensuite, sous Autorisations requises , vérifiez les autorisations FLASHLIGHT et CAMERA . Cela met automatiquement à jour le fichier AndroidManifest.xml.

Si vous définissez ces autorisations, Google Play filtre automatiquement les appareils sans matériel spécifique. Vous pouvez contourner ce filtrage en ajoutant les attributs d’assembly suivants au fichier Platforms/Android/MainApplication.cs après using les directives :

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

Utiliser la lampe de poche

La lampe de poche peut être activée et désactivée par le biais des méthodes TurnOnAsync() et TurnOffAsync(). L’exemple de code suivant lie l’état activé ou désactivé de la lampe à un Switch contrôle :

private async void FlashlightSwitch_Toggled(object sender, ToggledEventArgs e)
{
    try
    {
        if (FlashlightSwitch.IsToggled)
            await Flashlight.Default.TurnOnAsync();
        else
            await Flashlight.Default.TurnOffAsync();
    }
    catch (FeatureNotSupportedException ex)
    {
        // Handle not supported on device exception
    }
    catch (PermissionException ex)
    {
        // Handle permission exception
    }
    catch (Exception ex)
    {
        // Unable to turn on/off flashlight
    }
}

En outre, la IsSupportedAsync méthode peut être appelée pour vérifier si une lampe de poche est disponible sur l’appareil, avant d’appeler la TurnOnAsync() méthode.

Différences de plateforme

Cette section décrit les différences spécifiques à la plateforme avec la lampe de poche.

La Flashlight classe a été optimisée en fonction du système d’exploitation de l’appareil.

Niveau d’API 23 et versions ultérieures

Sur les niveaux d’API plus récents, le mode Torch est utilisé pour activer ou désactiver l’unité flash de l’appareil.

Niveau d’API 22 et inférieur

Une texture de surface de caméra est créée pour activer ou désactiver l’unité FlashMode de caméra.