Xamarin.Essentials: Taschenlampe
Mit der Klasse Flashlight können Sie das Blitzlicht der Gerätekamera aktivieren bzw. deaktivieren, um es als Taschenlampe einzusetzen.
Lesen Sie zum Einstieg in die Verwendung dieser API den Leitfaden mit ersten Schritte für Xamarin.Essentials, um sicherzustellen, dass die Bibliothek ordnungsgemäß installiert und in Ihren Projekten eingerichtet ist.
Für den Zugriff auf die Taschenlampen-Funktion ist die folgende plattformspezifische Einrichtung erforderlich.
Die Berechtigungen „Flashlight“ und „Camera“ sind erforderlich und müssen im Android-Projekt konfiguriert werden. Das Hinzufügen erfolgt folgendermaßen:
Öffnen Sie die Datei AssemblyInfo.cs im Ordner Eigenschaften und fügen Sie Folgendes hinzu:
[assembly: UsesPermission(Android.Manifest.Permission.Flashlight)]
[assembly: UsesPermission(Android.Manifest.Permission.Camera)]
Alternativ können Sie das Android-Manifest aktualisieren:
Öffnen Sie die Datei AndroidManifest.xml im Ordner Eigenschaften, und fügen Sie Folgendes im Knoten Manifest hinzu.
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.CAMERA" />
Alternativ können Sie mit der rechten Maustaste auf das Android-Projekt klicken und die Eigenschaften des Projekts öffnen. Suchen Sie unter Android-Manifest den Bereich Erforderliche Berechtigungen: , und aktivieren Sie die Berechtigungen FLASHLIGHT (Taschenlampe) und CAMERA (Kamera). Dadurch wird die Datei AndroidManifest.xml automatisch aktualisiert.
Durch das Hinzufügen dieser Berechtigungen filtert Google Play automatisch die Geräte heraus, die keine spezifische Hardware aufweisen. Sie können dies umgehen, indem Sie Folgendes der Datei „AssemblyInfo.cs“ in Ihrem Android-Projekt hinzufügen:
[assembly: UsesFeature("android.hardware.camera", Required = false)]
[assembly: UsesFeature("android.hardware.camera.autofocus", Required = false)]
Diese API verwendet Laufzeitberechtigungen unter Android. Stellen Sie sicher, dass Xamarin.Essentials vollständig initialisiert und die Verarbeitung von Berechtigungen in Ihrer App eingerichtet ist.
Im MainLauncher
-Element des Android-Projekts bzw. in einem beliebigen Activity
-Element, das gestartet wird, muss Xamarin.Essentials in der OnCreate
-Methode initialisiert werden:
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
//...
}
Um Laufzeitberechtigungen unter Android zu verwalten, muss Xamarin.Essentials ein beliebiges OnRequestPermissionsResult
-Element erhalten. Fügen Sie allen Activity
-Klassen den folgenden Code hinzu:
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);
}
Fügen Sie in Ihrer Klasse einen Verweis auf Xamarin.Essentials hinzu:
using Xamarin.Essentials;
Die Taschenlampe kann mit den Methoden TurnOnAsync
und TurnOffAsync
aktiviert bzw. deaktiviert werden:
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
}
Die Klasse „Flashlight“ wurde auf Basis des Betriebssystems des Geräts optimiert.
Auf neueren API-Ebenen wird der TorchMode (Taschenlampenmodus) verwendet, um die Blitzlichteinheit des Geräts zu aktivieren bzw. zu deaktivieren.
Zum Aktivieren oder Deaktivieren des FlashMode
(Blitzlichtmodus) der Kameraeinheit wird eine Kameraoberflächentextur erstellt.
Auf Channel 9 und auf YouTube finden Sie weitere Videos zu Xamarin.