Flashlight
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.