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

Altri video di Xamarin sono disponibili su Channel 9 e YouTube.