Sdílet prostřednictvím


Svítilna

Browse sample. Procházení ukázky

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.