Svítilna
Tento článek popisuje, jak můžete použít rozhraní .NET Multi-Platform App UI (.NET MAUI). IFlashlight Pomocí tohoto rozhraní můžete zapnout a vypnout blesk fotoaparátu zařízení a napodobit tak baterku.
Výchozí implementace IFlashlight
rozhraní je k dispozici prostřednictvím Flashlight.Default vlastnosti. Rozhraní IFlashlight
i Flashlight
třída jsou obsaženy v Microsoft.Maui.Devices
oboru názvů.
Začínáme
Pro přístup k funkci baterky se vyžaduje následující nastavení specifické pro platformu.
V projektu existují dvě oprávnění ke konfiguraci: Flashlight
a Camera
. Tato oprávnění je možné nastavit následujícími způsoby:
Přidejte oprávnění založené na sestavení:
Otevřete soubor Platforms/Android/MainApplication.cs a za direktivy
using
přidejte následující atributy sestavení:[assembly: UsesPermission(Android.Manifest.Permission.Flashlight)] [assembly: UsesPermission(Android.Manifest.Permission.Camera)]
- nebo -
Aktualizace manifestu Androidu:
Otevřete soubor Platforms/Android/AndroidManifest.xml a do uzlu přidejte následující
manifest
:<uses-permission android:name="android.permission.FLASHLIGHT" /> <uses-permission android:name="android.permission.CAMERA" />
- nebo -
Aktualizace manifestu Androidu v editoru manifestu:
V sadě Visual Studio poklikejte na soubor Platforms/Android/AndroidManifest.xml a otevřete editor manifestu Androidu. Potom v části Požadovaná oprávnění zkontrolujte oprávnění FLASHLIGHT a CAMERA. Tím se automaticky aktualizuje soubor AndroidManifest.xml .
Pokud nastavíte tato oprávnění, Google Play automaticky vyfiltruje zařízení bez konkrétního hardwaru. Toto filtrování můžete obejít přidáním následujících atributů sestavení do souboru Platforms/Android/MainApplication.cs za using
direktivy:
[assembly: UsesFeature("android.hardware.camera", Required = false)]
[assembly: UsesFeature("android.hardware.camera.autofocus", Required = false)]
Použití baterky
Baterka se dá zapnout a vypnout pomocí TurnOnAsync() a TurnOffAsync() metod. Následující příklad kódu prováže stav baterky k ovládacímu Switch prvku nebo jeho vypnutí:
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
}
}
Kromě toho lze metodu IsSupportedAsync vyvolat a zkontrolovat, jestli je na zařízení k dispozici baterka před voláním TurnOnAsync() metody.
Rozdíly mezi platformami
Tato část popisuje rozdíly specifické pro platformu s baterkou.
Třída Flashlight
byla optimalizována na základě operačního systému zařízení.
Rozhraní API úrovně 23 a vyšší
Na novějších úrovních rozhraní API se režim Torch použije k zapnutí nebo vypnutí flashové jednotky zařízení.
Úroveň rozhraní API 22 a nižší
Textura povrchu kamery se vytvoří, aby se zapnula nebo vypnula FlashMode
jednotka fotoaparátu.