Xamarin.Essentials:손전등

Flashlight 클래스에는 디바이스의 카메라 플래시를 켜거나 꺼서 손전등으로 전환하는 기능이 있습니다.

시작하기

이 API를 사용하기 전에 라이브러리가 제대로 설치되고 프로젝트에 설정되어 있는지 확인하기 위해 Xamarin.Essentials에 대한 시작 가이드를 읽어보세요.

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

Flashlight 및 Camera 권한이 필요하며 Android 프로젝트에서 구성해야 합니다. 이 권한은 다음과 같은 방법으로 추가할 수 있습니다.

속성 폴더 아래의 AssemblyInfo.cs 파일을 열고 다음을 추가합니다.

[assembly: UsesPermission(Android.Manifest.Permission.Flashlight)]
[assembly: UsesPermission(Android.Manifest.Permission.Camera)]

또는 Android 매니페스트를 업데이트합니다.

속성 폴더 아래의 AndroidManifest.xml 파일을 열고 매니페스트 노드 내부에 다음을 추가합니다.

<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.CAMERA" />

또는 Android 프로젝트를 마우스 오른쪽 단추로 클릭하고 프로젝트의 속성을 엽니다. Android 매니페스트 아래에서 필요한 권한: 영역을 찾아 FLASHLIGHTCAMERA 권한을 확인합니다. 그러면 AndroidManifest.xml 파일이 자동으로 업데이트됩니다.

이러한 권한을 추가하면 특정 하드웨어 없이 Google Play에서 자동으로 디바이스를 필터링합니다. Android 프로젝트에서 AssemblyInfo.cs 파일에 다음을 추가하여 이를 처리할 수 있습니다.

[assembly: UsesFeature("android.hardware.camera", Required = false)]
[assembly: UsesFeature("android.hardware.camera.autofocus", Required = false)]

이 API는 Android에서 런타임 권한을 사용합니다. Xamarin.Essentials가 완전히 초기화되고 앱에서 사용 권한 처리가 설정되어 있는지 확인하세요.

Android 프로젝트의 MainLauncher 또는 시작된 ActivityOnCreate 메서드에서 Xamarin.Essentials를 초기화해야 합니다.

protected override void OnCreate(Bundle savedInstanceState) 
{
    //...
    base.OnCreate(savedInstanceState);
    Xamarin.Essentials.Platform.Init(this, savedInstanceState); // add this line to your code, it may also be called: bundle
    //...
}    

Android에서 런타임 권한을 처리하려면 Xamarin.Essentials가 OnRequestPermissionsResult를 받아야 합니다. 모든 Activity 클래스에 다음 코드를 추가합니다.

public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Android.Content.PM.Permission[] grantResults)
{
    Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);

    base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}

손전등 사용

클래스에서 Xamarin.Essentials에 대한 참조를 추가합니다.

using Xamarin.Essentials;

TurnOnAsyncTurnOffAsync 메서드를 통해 손전등을 켜고 끌 수 있습니다.

try
{
    // Turn On
    await Flashlight.TurnOnAsync();

    // Turn Off
    await Flashlight.TurnOffAsync();
}
catch (FeatureNotSupportedException fnsEx)
{
    // Handle not supported on device exception
}
catch (PermissionException pEx)
{
    // Handle permission exception
}
catch (Exception ex)
{
    // Unable to turn on/off flashlight
}

플랫폼 구현 관련 정보

Flashlight 클래스는 디바이스의 운영 체제에 따라 최적화되었습니다.

API 레벨 23 이상

최신 API 레벨에서 손전등 모드는 디바이스의 플래시 디바이스를 켜거나 끄는 데 사용됩니다.

API 레벨 22 이하

카메라 표면 텍스처는 카메라 장치의 FlashMode을 켜거나 끄기 위해 만들어졌습니다.

API

Channel 9YouTube에서 더 많은 Xamarin 비디오를 확인하세요.