Taschenlampe
In diesem Artikel wird beschrieben, wie Sie die .NET Multi-Platform App UI (.NET MAUI) IFlashlight-Schnittstelle verwenden können. Mit dieser Schnittstelle können Sie den Kamerablitz des Geräts ein- und ausschalten, um eine Taschenlampe zu emulieren.
Die Standardimplementierung der IFlashlight
-Schnittstelle ist über die Flashlight.Default-Eigenschaft verfügbar. Die IFlashlight
-Schnittstelle sowie die Flashlight
-Klasse sind im Microsoft.Maui.Devices
-Namespace enthalten.
Erste Schritte
Für den Zugriff auf die Taschenlampen-Funktion ist die folgende plattformspezifische Einrichtung erforderlich.
Es gibt zwei Berechtigungen, die Sie in Ihrem Projekt konfigurieren müssen: Flashlight
und Camera
. Diese Berechtigungen können auf folgende Weise angezeigt werden:
Fügen Sie die assemblybasierte Berechtigung hinzu:
Öffnen Sie die Datei Platforms/Android/MainApplication.cs, und fügen Sie die folgenden Assemblyattribute nach
using
-Direktiven hinzu:[assembly: UsesPermission(Android.Manifest.Permission.Flashlight)] [assembly: UsesPermission(Android.Manifest.Permission.Camera)]
- oder -
Aktualisieren Sie das Android-Manifest:
Öffnen Sie die Datei Platforms/Android/AndroidManifest.xml, und fügen Sie Folgendes zum Knoten
manifest
hinzu:<uses-permission android:name="android.permission.FLASHLIGHT" /> <uses-permission android:name="android.permission.CAMERA" />
- oder -
Aktualisieren Sie das Android-Manifest im Manifest-Editor:
Doppelklicken Sie in Visual Studio auf die Datei Platforms/Android/AndroidManifest.xml, um den Android-Manifest-Editor zu öffnen. Überprüfen Sie dann unter Erforderliche Berechtigungen die Berechtigungen FLASHLIGHT und CAMERA. Dadurch wird die Datei AndroidManifest.xml automatisch aktualisiert.
Wenn Sie diese Berechtigungen festlegen, filtert Google Play automatisch die Geräte heraus, die keine spezifische Hardware aufweisen. Sie können diese Filterung umgehen, indem Sie die folgenden Assemblyattribute zur Datei Platforms/Android/MainApplication.cs nachusing
-Direktiven hinzufügen:
[assembly: UsesFeature("android.hardware.camera", Required = false)]
[assembly: UsesFeature("android.hardware.camera.autofocus", Required = false)]
Verwenden der Taschenlampe
Die Taschenlampe kann mit den Methoden TurnOnAsync() und TurnOffAsync() aktiviert bzw. deaktiviert werden. Im folgenden Codebeispiel wird der Ein- oder Aus-Status der Taschenlampe mit einem Switch-Steuerelement verknüpft:
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
}
}
Darüber hinaus kann die IsSupportedAsync-Methode aufgerufen werden, um zu überprüfen, ob eine Taschenlampe auf dem Gerät verfügbar ist, bevor die TurnOnAsync()-Methode aufgerufen wird.
Plattformunterschiede
In diesem Abschnitt werden die plattformspezifischen Unterschiede beim Blitz beschrieben.
Die Flashlight
-Klasse wurde auf Basis des Betriebssystems des Geräts optimiert.
API-Ebene 23 und höher
Auf neueren API-Ebenen wird der TorchMode (Taschenlampenmodus) verwendet, um die Blitzlichteinheit des Geräts zu aktivieren bzw. zu deaktivieren.
API-Ebene 22 und niedriger
Zum Aktivieren oder Deaktivieren des FlashMode
(Blitzlichtmodus) der Kameraeinheit wird eine Kameraoberflächentextur erstellt.