Condividi tramite


Torcia elettrica

Browse sample. Esplorare l'esempio

Questo articolo descrive come usare l'interfaccia dell'interfaccia utente dell'app multipiattaforma .NET (.NET MAUI). IFlashlight Con questa interfaccia, è possibile attivare e disattivare il flash della fotocamera del dispositivo per emulare una torcia.

L'implementazione predefinita dell'interfaccia IFlashlight è disponibile tramite la Flashlight.Default proprietà . Sia l'interfaccia che Flashlight la IFlashlight classe sono contenute nello spazio dei Microsoft.Maui.Devices nomi .

Introduzione

Per accedere alla funzionalità della torcia, è necessaria la configurazione specifica della piattaforma seguente.

Esistono due autorizzazioni da configurare nel progetto: Flashlight e Camera. Queste autorizzazioni possono essere impostate nei modi seguenti:

  • Aggiungere l'autorizzazione basata su assembly:

    Aprire il file Platforms/Android/MainApplication.cs e aggiungere gli attributi assembly seguenti dopo using le direttive:

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

    - oppure -

  • Aggiornare il manifesto Android:

    Aprire il file Platforms/Android/AndroidManifest.xml e aggiungere quanto segue nel manifest nodo:

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

    - oppure -

  • Aggiornare il manifesto Android nell'editor del manifesto:

    In Visual Studio fare doppio clic sul file Platforms/Android/AndroidManifest.xml per aprire l'editor del manifesto Android. Quindi, in Autorizzazioni necessarie controllare le autorizzazioni FLASHLIGHT e CAMERA. Il file AndroidManifest.xml verrà aggiornato automaticamente.

Se si impostano queste autorizzazioni, Google Play filtra automaticamente i dispositivi senza hardware specifico. È possibile aggirare questo filtro aggiungendo gli attributi di assembly seguenti al file Platforms/Android/MainApplication.cs dopo using le direttive:

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

Usare la torcia

La torcia può essere attivata e disattivata tramite i TurnOnAsync() metodi e TurnOffAsync() . L'esempio di codice seguente collega lo stato della torcia accesa o disattivata a un Switch controllo:

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

Inoltre, il IsSupportedAsync metodo può essere richiamato per verificare se nel dispositivo è disponibile una torcia, prima di chiamare il TurnOnAsync() metodo .

Differenze tra le piattaforme

Questa sezione descrive le differenze specifiche della piattaforma con la torcia.

La Flashlight classe è stata ottimizzata in base al sistema operativo del dispositivo.

Livello API 23 e superiore

Nei livelli API più recenti verrà usata la modalità torcia per attivare o disattivare l'unità flash nel dispositivo.

Livello API 22 e inferiore

Viene creata una trama della superficie della fotocamera per attivare o disattivare l'elemento FlashMode dell'unità fotocamera.