Latarka
W tym artykule opisano sposób używania interfejsu użytkownika aplikacji wieloplatformowej platformy .NET (.NET MAUI). IFlashlight Za pomocą tego interfejsu można przełączać lampę błyskową i wyłączać aparat urządzenia, aby emulować latarki.
Domyślna implementacja interfejsu IFlashlight
jest dostępna za pośrednictwem Flashlight.Default właściwości . Zarówno interfejs, jak IFlashlight
i Flashlight
klasa są zawarte w Microsoft.Maui.Devices
przestrzeni nazw.
Rozpocznij
Aby uzyskać dostęp do funkcji latarki, wymagana jest następująca konfiguracja specyficzna dla platformy.
Istnieją dwa uprawnienia do skonfigurowania w projekcie: Flashlight
i Camera
. Te uprawnienia można ustawić na następujące sposoby:
Dodaj uprawnienie oparte na zestawie:
Otwórz plik Platforms/Android/MainApplication.cs i dodaj następujące atrybuty zestawu po
using
dyrektywach:[assembly: UsesPermission(Android.Manifest.Permission.Flashlight)] [assembly: UsesPermission(Android.Manifest.Permission.Camera)]
- lub -
Zaktualizuj manifest systemu Android:
Otwórz plik Platforms/Android/AndroidManifest.xml i dodaj następujące elementy w węźle
manifest
:<uses-permission android:name="android.permission.FLASHLIGHT" /> <uses-permission android:name="android.permission.CAMERA" />
- lub -
Zaktualizuj manifest systemu Android w edytorze manifestu:
W programie Visual Studio kliknij dwukrotnie plik Platforms/Android/AndroidManifest.xml , aby otworzyć edytor manifestu systemu Android. Następnie w obszarze Wymagane uprawnienia sprawdź uprawnienia FLASHLIGHT i CAMERA. Spowoduje to automatyczne zaktualizowanie pliku AndroidManifest.xml .
Jeśli ustawisz te uprawnienia, sklep Google Play automatycznie odfiltruje urządzenia bez określonego sprzętu. Możesz obejść to filtrowanie, dodając następujące atrybuty zestawu do pliku Platforms/Android/MainApplication.cs po using
dyrektywach:
[assembly: UsesFeature("android.hardware.camera", Required = false)]
[assembly: UsesFeature("android.hardware.camera.autofocus", Required = false)]
Korzystanie z latarki
Latarka może być włączona i wyłączona TurnOnAsync() za pomocą metod i TurnOffAsync() . Poniższy przykładowy kod łączy stan włączania lub wyłączania latarki z kontrolką Switch :
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
}
}
Ponadto można wywołać metodę w celu sprawdzenia, IsSupportedAsync czy na urządzeniu TurnOnAsync() jest dostępna latarka, przed wywołaniem metody.
Różnice między platformami
W tej sekcji opisano różnice specyficzne dla platformy z latarki.
Klasa Flashlight
została zoptymalizowana na podstawie systemu operacyjnego urządzenia.
Poziom interfejsu API 23 i wyższy
Na nowszych poziomach interfejsu API tryb torch będzie używany do włączania lub wyłączania jednostki flash urządzenia.
Poziom interfejsu API 22 i niższy
Tekstura powierzchni aparatu jest tworzona w celu włączenia lub wyłączenia FlashMode
aparatu fotograficznego.