Xamarin.Essentials:Lanterna
A classe Flashlight tem a capacidade de ativar ou desativar o flash da câmera do dispositivo para transformá-lo em uma lanterna.
Introdução
Para começar a usar essa API, leia o guia de introdução para Xamarin.Essentials para garantir que a biblioteca esteja instalada e configurada corretamente em seus projetos.
Para acessar a funcionalidade Flashlight, a seguinte configuração específica da plataforma é necessária.
As permissões Flashlight e Camera são necessárias e devem ser configuradas no projeto do Android. Isso pode ser usado das seguintes maneiras:
Abra o arquivo AssemblyInfo.cs na pasta Propriedades e adicione:
[assembly: UsesPermission(Android.Manifest.Permission.Flashlight)]
[assembly: UsesPermission(Android.Manifest.Permission.Camera)]
OU Atualize o Manifesto do Android:
Abra o arquivo AndroidManifest.xml na pasta Propriedades e adicione o seguinte dentro do nó de manifesto .
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.CAMERA" />
Ou clique com o botão direito do mouse no projeto do Android e abra as propriedades do projeto. Em Manifesto do Android, localize a área Permissões necessárias: e marque as permissões FLASHLIGHT e CAMERA. Isso atualizará automaticamente o arquivo AndroidManifest.xml.
Ao adicionar essas permissões, o Google Play filtrará automaticamente os dispositivos sem um hardware específico. Você pode contornar isso adicionando o seguinte ao seu arquivo AssemblyInfo.cs em seu projeto do Android:
[assembly: UsesFeature("android.hardware.camera", Required = false)]
[assembly: UsesFeature("android.hardware.camera.autofocus", Required = false)]
Essa API usa permissões de runtime no Android. Verifique se Xamarin.Essentials está totalmente inicializado e se o tratamento de permissões está configurado em seu aplicativo.
No projeto do MainLauncher
Android ou em qualquer Activity
que seja iniciado Xamarin.Essentials , deve ser inicializado no OnCreate
método :
protected override void OnCreate(Bundle savedInstanceState)
{
//...
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState); // add this line to your code, it may also be called: bundle
//...
}
Para lidar com permissões de runtime no Android, Xamarin.Essentials deve receber qualquer OnRequestPermissionsResult
. Adicione o seguinte código a todas as classes Activity
:
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Android.Content.PM.Permission[] grantResults)
{
Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}
Como usar Flashlight
Adicione uma referência a Xamarin.Essentials em sua classe:
using Xamarin.Essentials;
A lanterna pode ser ativada e desativada por meio dos métodos TurnOnAsync
e TurnOffAsync
:
try
{
// Turn On
await Flashlight.TurnOnAsync();
// Turn Off
await Flashlight.TurnOffAsync();
}
catch (FeatureNotSupportedException fnsEx)
{
// Handle not supported on device exception
}
catch (PermissionException pEx)
{
// Handle permission exception
}
catch (Exception ex)
{
// Unable to turn on/off flashlight
}
Particularidades de implementação da plataforma
A classe Flashlight foi otimizada com base no sistema operacional do dispositivo.
Nível da API 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.
Nível da API 22 e inferior
Uma textura de superfície da câmera é criada para ativar ou desativar o FlashMode
da unidade de câmera.
API
Vídeo relacionados
Encontre mais vídeos sobre o Xamarin no Channel 9 e no YouTube.