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 매니페스트 아래에서 필요한 권한: 영역을 찾아 FLASHLIGHT 및 CAMERA 권한을 확인합니다. 그러면 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 또는 시작된 Activity의 OnCreate 메서드에서 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;
TurnOnAsync 및 TurnOffAsync 메서드를 통해 손전등을 켜고 끌 수 있습니다.
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을 켜거나 끄기 위해 만들어졌습니다.