손전등
이 문서에서는 .NET 다중 플랫폼 앱 UI(.NET MAUI) IFlashlight 인터페이스를 사용하는 방법을 설명합니다. 이 인터페이스를 사용하면 장치의 카메라 플래시를 켜고 끌 수 있으며 손전등을 에뮬레이트할 수 있습니다.
인터페이스의 IFlashlight
기본 구현은 속성을 통해 Flashlight.Default 사용할 수 있습니다. IFlashlight
인터페이스와 Flashlight
클래스는 모두 네임스페이스에 Microsoft.Maui.Devices
포함됩니다.
시작하기
손전등 기능에 액세스하려면 다음 플랫폼별 설정이 필요합니다.
프로젝트에서 Flashlight
Camera
구성할 수 있는 권한은 다음과 같습니다. 이러한 사용 권한은 다음과 같은 방법으로 설정할 수 있습니다.
어셈블리 기반 권한을 추가합니다.
Platforms/Android/MainApplication.cs 파일을 열고 지시문 다음에
using
다음 어셈블리 특성을 추가합니다.[assembly: UsesPermission(Android.Manifest.Permission.Flashlight)] [assembly: UsesPermission(Android.Manifest.Permission.Camera)]
- 또는 -
Android 매니페스트를 업데이트합니다.
Platforms/Android/AndroidManifest.xml 파일을 열고 노드에 다음을
manifest
추가합니다.<uses-permission android:name="android.permission.FLASHLIGHT" /> <uses-permission android:name="android.permission.CAMERA" />
- 또는 -
매니페스트 편집기에서 Android 매니페스트를 업데이트합니다.
Visual Studio에서 Platforms/Android/AndroidManifest.xml 파일을 두 번 클릭하여 Android 매니페스트 편집기를 엽니다. 그런 다음 필수 권한에서 FLASHLIGHT 및 CAMERA 권한을 검사. 그러면 AndroidManifest.xml 파일이 자동으로 업데이트됩니다.
이러한 사용 권한을 설정하면 Google Play는 특정 하드웨어 없이 디바이스를 자동으로 필터링합니다. 다음 어셈블리 특성을 지시문 후 using
Platforms/Android/MainApplication.cs 파일에 추가하여 이 필터링을 해결할 수 있습니다.
[assembly: UsesFeature("android.hardware.camera", Required = false)]
[assembly: UsesFeature("android.hardware.camera.autofocus", Required = false)]
손전등 사용
손전등은 및 TurnOffAsync() 메서드를 통해 TurnOnAsync() 켜고 끌 수 있습니다. 다음 코드 예제에서는 손전등의 켜기 또는 꺼진 상태를 컨트롤에 연결합니다 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 레벨에서 손전등 모드는 디바이스의 플래시 디바이스를 켜거나 끄는 데 사용됩니다.
API 수준 22 이하
카메라 표면 텍스처는 카메라 장치의 FlashMode
을 켜거나 끄기 위해 만들어졌습니다.
.NET MAUI