Flashlight
В этой статье описывается, как использовать интерфейс многоплатформенного приложения .NET (.NET MAUI). IFlashlight С помощью этого интерфейса можно переключать вспышку и выключение камеры устройства, чтобы эмулировать фонарик.
Реализация интерфейса по умолчанию IFlashlight
доступна через Flashlight.Default свойство. Интерфейс IFlashlight
и Flashlight
класс содержатся в Microsoft.Maui.Devices
пространстве имен.
Начать
Для доступа к функциям фонарика требуется следующая настройка для конкретной платформы.
В проекте Flashlight
есть два разрешения: и Camera
. Эти разрешения можно задать следующим образом:
Добавьте разрешение на основе сборки:
Откройте файл Platform/Android/MainApplication.cs и добавьте следующие атрибуты сборки после
using
директив:[assembly: UsesPermission(Android.Manifest.Permission.Flashlight)] [assembly: UsesPermission(Android.Manifest.Permission.Camera)]
- или -
Обновите манифест Android:
Откройте файл Platform/Android/AndroidManifest.xml и добавьте в узел следующее
manifest
:<uses-permission android:name="android.permission.FLASHLIGHT" /> <uses-permission android:name="android.permission.CAMERA" />
- или -
Обновите манифест Android в редакторе манифеста:
В Visual Studio дважды щелкните файл Platform/Android/AndroidManifest.xml , чтобы открыть редактор манифеста Android. Затем в разделе "Необходимые разрешения" проверка разрешения FLASHLIGHT и CAMERA. Это действие автоматически обновляет файл AndroidManifest.xml.
Если эти разрешения заданы, Google Play автоматически отфильтрует устройства без определенного оборудования. Вы можете обойти эту фильтрацию, добавив следующие атрибуты сборки в файл Platform/Android/MainApplication.cs после using
директив:
[assembly: UsesFeature("android.hardware.camera", Required = false)]
[assembly: UsesFeature("android.hardware.camera.autofocus", Required = false)]
Использование фонарика
Фонарик можно включить и отключить с помощью TurnOnAsync() методов и TurnOffAsync() методов. Следующий пример кода связывает состояние фонарика включено или выключение с элементом 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
}
}
Кроме того, IsSupportedAsync метод можно вызвать для проверка, если фонарик доступен на устройстве, перед вызовом TurnOnAsync() метода.
Различия между платформами
В этом разделе описываются различия платформы с фонариком.
Класс Flashlight
оптимизирован на основе операционной системы устройства.
Уровень API 23 и выше
В более поздних уровнях API режим Torch Mode будет использоваться для включения и выключения вспышки устройства.
Уровень API 22 и более низкий
Текстура поверхности камеры предусмотрена для включения или выключения режима FlashMode
камеры.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по