Xamarin.Essentials:Torche
La classe Flashlight permet d’activer ou de désactiver le flash de l’appareil photo de l’appareil pour transformer celui-ci en lampe de poche.
Démarrage
Pour commencer à utiliser cette API, lisez le guide de prise en main pour Xamarin.Essentials vous assurer que la bibliothèque est correctement installée et configurée dans vos projets.
Pour accéder à la fonctionnalité de lampe de poche, la configuration suivante spécifique à la plateforme est obligatoire.
Les autorisations Flashlight et Camera sont obligatoires, et doivent être configurées dans le projet Android. Vous pouvez le faire de plusieurs façons, comme indiqué ci-dessous :
Ouvrez le fichier AssemblyInfo.cs sous le dossier Propriétés et ajoutez :
[assembly: UsesPermission(Android.Manifest.Permission.Flashlight)]
[assembly: UsesPermission(Android.Manifest.Permission.Camera)]
OU mettez à jour le manifeste Android :
Ouvrez le fichier AndroidManifest.xml sous le dossier Propriétés et ajoutez ce qui suit dans le nœud du manifeste.
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.CAMERA" />
Ou cliquez avec le bouton droit sur le projet Android et ouvrez les propriétés du projet. Sous Manifeste Android, recherchez la zone Autorisations nécessaires, puis cochez les autorisations FLASHLIGHT et CAMERA. Cela met automatiquement à jour le fichier AndroidManifest.xml.
Si vous ajoutez ces autorisations, Google Play va filtrer automatiquement les appareils n’ayant pas un matériel spécifique. Vous pouvez contourner ce problème en ajoutant ce qui suit au fichier AssemblyInfo.cs de votre projet Android :
[assembly: UsesFeature("android.hardware.camera", Required = false)]
[assembly: UsesFeature("android.hardware.camera.autofocus", Required = false)]
Cette API utilise des autorisations d’exécution sur Android. Vérifiez que la Xamarin.Essentials gestion des autorisations est entièrement initialisée et configurée dans votre application.
Dans le projet MainLauncher
Android ou tout Activity
projet lancé Xamarin.Essentials doit être initialisé dans la OnCreate
méthode :
protected override void OnCreate(Bundle savedInstanceState)
{
//...
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState); // add this line to your code, it may also be called: bundle
//...
}
Pour gérer les autorisations d’exécution sur Android, Xamarin.Essentials doivent recevoir n’importe quel OnRequestPermissionsResult
. Ajoutez le code suivant à toutes les classes Activity
:
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Android.Content.PM.Permission[] grantResults)
{
Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}
Utilisation de la lampe de poche
Ajoutez une référence à Xamarin.Essentials votre classe :
using Xamarin.Essentials;
Vous pouvez activer et désactiver la lampe de poche à l’aide des méthodes TurnOnAsync
et TurnOffAsync
:
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
}
Caractéristiques de mise en œuvre de la plateforme
La classe Flashlight a été optimisée en fonction du système d’exploitation de l’appareil.
Niveau d’API 23 et plus
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 moins
Une texture de surface d’appareil photo est créée pour activer ou désactiver le FlashMode
de l’unité d’appareil photo.