Compartilhar via


Flashlight

Browse sample. Navegue pelo exemplo

Este artigo descreve como você pode usar a interface .NET Multi-platform App UI (.NET MAUI). IFlashlight Com esta interface, você pode ativar e desativar o flash da câmera do dispositivo, para emular uma lanterna.

A implementação padrão da interface está disponível por meio da IFlashlight Flashlight.Default propriedade. A interface e Flashlight a IFlashlight classe estão contidas no Microsoft.Maui.Devices namespace.

Introdução

Para acessar a funcionalidade da lanterna, é necessária a seguinte configuração específica da plataforma.

Há duas permissões para configurar em seu projeto: Flashlight e Camera. Essas permissões podem ser definidas das seguintes maneiras:

  • Adicione a permissão baseada em assembly:

    Abra o arquivo Platforms/Android/MainApplication.cs e adicione os seguintes atributos de assembly após using as diretivas:

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

    - ou -

  • Atualize o manifesto do Android:

    Abra o arquivo Platforms/Android/AndroidManifest.xml e adicione o manifest seguinte no nó:

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

    - ou -

  • Atualize o manifesto do Android no editor de manifesto:

    No Visual Studio, clique duas vezes no arquivo Platforms/Android/AndroidManifest.xml para abrir o editor de manifesto do Android. Em seguida, em Permissões necessárias, verifique as permissões LANTERNA e CÂMERA. Isso atualizará automaticamente o arquivo AndroidManifest.xml.

Se você definir essas permissões, o Google Play filtrará automaticamente os dispositivos sem hardware específico. Você pode contornar essa filtragem adicionando os seguintes atributos de assembly ao arquivo Platforms/Android/MainApplication.cs após using as diretivas:

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

Usar lanterna

A lanterna pode ser ligada e desligada através dos TurnOnAsync() métodos e TurnOffAsync() . O exemplo de código a seguir vincula o estado ligado ou desligado da lanterna a um Switch controle:

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

Além disso, o método pode ser chamado para verificar se uma lanterna está disponível no dispositivo, antes de chamar o IsSupportedAsync TurnOnAsync() método.

Diferenças de plataforma

Esta seção descreve as diferenças específicas da plataforma com a lanterna.

A Flashlight classe foi otimizada com base no sistema operacional do dispositivo.

API nível 23 e superior

Em níveis mais recentes da API, o Modo Tocha será usado para ativar ou desativar a unidade de flash do dispositivo.

API nível 22 e inferior

Uma textura de superfície da câmera é criada para ativar ou desativar o FlashMode da unidade de câmera.