Latarka

Browse sample. Przeglądanie przykładu

W tym artykule opisano sposób używania interfejsu użytkownika aplikacji wieloplatformowej platformy .NET (.NET MAUI). IFlashlight Za pomocą tego interfejsu można przełączać lampę błyskową i wyłączać aparat urządzenia, aby emulować latarki.

Domyślna implementacja interfejsu IFlashlight jest dostępna za pośrednictwem Flashlight.Default właściwości . Zarówno interfejs, jak IFlashlight i Flashlight klasa są zawarte w Microsoft.Maui.Devices przestrzeni nazw.

Rozpocznij

Aby uzyskać dostęp do funkcji latarki, wymagana jest następująca konfiguracja specyficzna dla platformy.

Istnieją dwa uprawnienia do skonfigurowania w projekcie: Flashlight i Camera. Te uprawnienia można ustawić na następujące sposoby:

  • Dodaj uprawnienie oparte na zestawie:

    Otwórz plik Platforms/Android/MainApplication.cs i dodaj następujące atrybuty zestawu po using dyrektywach:

    [assembly: UsesPermission(Android.Manifest.Permission.Flashlight)]
    [assembly: UsesPermission(Android.Manifest.Permission.Camera)]
    

    - lub -

  • Zaktualizuj manifest systemu Android:

    Otwórz plik Platforms/Android/AndroidManifest.xml i dodaj następujące elementy w węźlemanifest:

    <uses-permission android:name="android.permission.FLASHLIGHT" />
    <uses-permission android:name="android.permission.CAMERA" />
    

    - lub -

  • Zaktualizuj manifest systemu Android w edytorze manifestu:

    W programie Visual Studio kliknij dwukrotnie plik Platforms/Android/AndroidManifest.xml , aby otworzyć edytor manifestu systemu Android. Następnie w obszarze Wymagane uprawnienia sprawdź uprawnienia FLASHLIGHT i CAMERA. Spowoduje to automatyczne zaktualizowanie pliku AndroidManifest.xml .

Jeśli ustawisz te uprawnienia, sklep Google Play automatycznie odfiltruje urządzenia bez określonego sprzętu. Możesz obejść to filtrowanie, dodając następujące atrybuty zestawu do pliku Platforms/Android/MainApplication.cs po using dyrektywach:

[assembly: UsesFeature("android.hardware.camera", Required = false)]
[assembly: UsesFeature("android.hardware.camera.autofocus", Required = false)]

Korzystanie z latarki

Latarka może być włączona i wyłączona TurnOnAsync() za pomocą metod i TurnOffAsync() . Poniższy przykładowy kod łączy stan włączania lub wyłączania latarki z kontrolką Switch :

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
    }
}

Ponadto można wywołać metodę w celu sprawdzenia, IsSupportedAsync czy na urządzeniu TurnOnAsync() jest dostępna latarka, przed wywołaniem metody.

Różnice między platformami

W tej sekcji opisano różnice specyficzne dla platformy z latarki.

Klasa Flashlight została zoptymalizowana na podstawie systemu operacyjnego urządzenia.

Poziom interfejsu API 23 i wyższy

Na nowszych poziomach interfejsu API tryb torch będzie używany do włączania lub wyłączania jednostki flash urządzenia.

Poziom interfejsu API 22 i niższy

Tekstura powierzchni aparatu jest tworzona w celu włączenia lub wyłączenia FlashMode aparatu fotograficznego.