Partager via


Lampe de poche

Browse sample. Parcourir l’exemple

Cet article explique comment utiliser l’interface utilisateur de l’application multiplateforme .NET (.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 Flashlight.Default propriété. L’interface et Flashlight la IFlashlight classe sont contenues dans l’espace Microsoft.Maui.Devices de noms.

Démarrage

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 Platforms/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 manifest nœud :

    <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 Platforms/Android/AndroidManifest.xml pour ouvrir l’éditeur de manifeste Android. Ensuite, sous Autorisations requises case activée 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 et TurnOffAsync() des TurnOnAsync() méthodes. 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 case activée 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

Avec les nouveaux niveaux d’API, le mode Torche permet d’activer ou de désactiver le flash de l’appareil.

Niveau d’API 22 et inférieur

Une texture de surface d’appareil photo est créée pour activer ou désactiver le FlashMode de l’unité d’appareil photo.