Lampe de poche
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.