Xamarin.Essentials:Torcia elettrica
La classe Flashlight può attivare o disattivare il flash della fotocamera del dispositivo per trasformarlo in una torcia.
Operazioni preliminari
Per iniziare a usare questa API, leggere la guida introduttiva per Xamarin.Essentials assicurarsi che la libreria sia installata e configurata correttamente nei progetti.
Per accedere alla funzionalità Flashlight, è necessaria la configurazione seguente specifica della piattaforma.
Le autorizzazioni Flashlight e Camera sono obbligatorie e devono essere configurate nel progetto Android. È possibile aggiungerla nei modi seguenti:
Aprire il file AssemblyInfo.cs nella cartella Proprietà e aggiungere:
[assembly: UsesPermission(Android.Manifest.Permission.Flashlight)]
[assembly: UsesPermission(Android.Manifest.Permission.Camera)]
OPPURE aggiornare il manifesto di Android:
Aprire il file AndroidManifest.xml nella cartella Proprietà e aggiungere quanto segue all'interno del nodo manifest.
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.CAMERA" />
Oppure fare clic con il pulsante destro del mouse sul progetto Android e aprire le proprietà del progetto. In Manifesto Android trovare l'area Autorizzazioni necessarie e selezionare le autorizzazioni FLASHLIGHT e CAMERA. Il file AndroidManifest.xml verrà aggiornato automaticamente.
Aggiungendo queste autorizzazioni, Google Play filtrerà automaticamente i dispositivi senza hardware specifico. Per aggirare questo problema, aggiungere il codice seguente al file AssemblyInfo.cs nel progetto Android:
[assembly: UsesFeature("android.hardware.camera", Required = false)]
[assembly: UsesFeature("android.hardware.camera.autofocus", Required = false)]
Questa API usa le autorizzazioni di runtime in Android. Assicurarsi che sia completamente inizializzata e che Xamarin.Essentials la gestione delle autorizzazioni sia configurata nell'app.
Nel progetto MainLauncher
Android o in qualsiasi Activity
elemento avviato Xamarin.Essentials deve essere inizializzato nel OnCreate
metodo :
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
//...
}
Per gestire le autorizzazioni di runtime in Android, Xamarin.Essentials deve ricevere qualsiasi OnRequestPermissionsResult
. Aggiungere il codice seguente a tutte le classi 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);
}
Uso di Flashlight
Aggiungere un riferimento a Xamarin.Essentials nella classe :
using Xamarin.Essentials;
La torcia può essere attivata o disattivata tramite i metodi 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
}
Informazioni di implementazione specifiche della piattaforma
La classe Flashlight è stata ottimizzata in base al sistema operativo del dispositivo.
API livello 23 e successivi
Nei livelli API più recenti verrà usata la modalità torcia per attivare o disattivare l'unità flash nel dispositivo.
API livello 22 e precedenti
Viene creata una trama della superficie della fotocamera per attivare o disattivare l'elemento FlashMode
dell'unità fotocamera.
API
Video correlato
Altri video di Xamarin sono disponibili su Channel 9 e YouTube.