손전등

Browse sample. 샘플 찾아보기

이 문서에서는 .NET 다중 플랫폼 앱 UI(.NET MAUI) IFlashlight 인터페이스를 사용하는 방법을 설명합니다. 이 인터페이스를 사용하면 장치의 카메라 플래시를 켜고 끌 수 있으며 손전등을 에뮬레이트할 수 있습니다.

인터페이스의 IFlashlight 기본 구현은 속성을 통해 Flashlight.Default 사용할 수 있습니다. IFlashlight 인터페이스와 Flashlight 클래스는 모두 네임스페이스에 Microsoft.Maui.Devices 포함됩니다.

시작하기

손전등 기능에 액세스하려면 다음 플랫폼별 설정이 필요합니다.

프로젝트에서 FlashlightCamera구성할 수 있는 권한은 다음과 같습니다. 이러한 사용 권한은 다음과 같은 방법으로 설정할 수 있습니다.

  • 어셈블리 기반 권한을 추가합니다.

    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 매니페스트 편집기를 엽니다. 그런 다음 필수 권한에서 FLASHLIGHTCAMERA 권한을 검사. 그러면 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을 켜거나 끄기 위해 만들어졌습니다.