Torcia elettrica
Questo articolo descrive come usare l'interfaccia dell'interfaccia utente dell'app multipiattaforma .NET (.NET MAUI). IFlashlight Con questa interfaccia, è possibile attivare e disattivare il flash della fotocamera del dispositivo per emulare una torcia.
L'implementazione predefinita dell'interfaccia IFlashlight
è disponibile tramite la Flashlight.Default proprietà . Sia l'interfaccia che Flashlight
la IFlashlight
classe sono contenute nello spazio dei Microsoft.Maui.Devices
nomi .
Introduzione
Per accedere alla funzionalità della torcia, è necessaria la configurazione specifica della piattaforma seguente.
Esistono due autorizzazioni da configurare nel progetto: Flashlight
e Camera
. Queste autorizzazioni possono essere impostate nei modi seguenti:
Aggiungere l'autorizzazione basata su assembly:
Aprire il file Platforms/Android/MainApplication.cs e aggiungere gli attributi assembly seguenti dopo
using
le direttive:[assembly: UsesPermission(Android.Manifest.Permission.Flashlight)] [assembly: UsesPermission(Android.Manifest.Permission.Camera)]
- oppure -
Aggiornare il manifesto Android:
Aprire il file Platforms/Android/AndroidManifest.xml e aggiungere quanto segue nel
manifest
nodo:<uses-permission android:name="android.permission.FLASHLIGHT" /> <uses-permission android:name="android.permission.CAMERA" />
- oppure -
Aggiornare il manifesto Android nell'editor del manifesto:
In Visual Studio fare doppio clic sul file Platforms/Android/AndroidManifest.xml per aprire l'editor del manifesto Android. Quindi, in Autorizzazioni necessarie controllare le autorizzazioni FLASHLIGHT e CAMERA. Il file AndroidManifest.xml verrà aggiornato automaticamente.
Se si impostano queste autorizzazioni, Google Play filtra automaticamente i dispositivi senza hardware specifico. È possibile aggirare questo filtro aggiungendo gli attributi di assembly seguenti al file Platforms/Android/MainApplication.cs dopo using
le direttive:
[assembly: UsesFeature("android.hardware.camera", Required = false)]
[assembly: UsesFeature("android.hardware.camera.autofocus", Required = false)]
Usare la torcia
La torcia può essere attivata e disattivata tramite i TurnOnAsync() metodi e TurnOffAsync() . L'esempio di codice seguente collega lo stato della torcia accesa o disattivata a un Switch controllo:
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
}
}
Inoltre, il IsSupportedAsync metodo può essere richiamato per verificare se nel dispositivo è disponibile una torcia, prima di chiamare il TurnOnAsync() metodo .
Differenze tra le piattaforme
Questa sezione descrive le differenze specifiche della piattaforma con la torcia.
La Flashlight
classe è stata ottimizzata in base al sistema operativo del dispositivo.
Livello API 23 e superiore
Nei livelli API più recenti verrà usata la modalità torcia per attivare o disattivare l'unità flash nel dispositivo.
Livello API 22 e inferiore
Viene creata una trama della superficie della fotocamera per attivare o disattivare l'elemento FlashMode
dell'unità fotocamera.