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 매니페스트 아래에서 필요한 권한: 영역을 찾아 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 레벨에서 손전등 모드는 디바이스의 플래시 디바이스를 켜거나 끄는 데 사용됩니다.
카메라 표면 텍스처는 카메라 장치의 FlashMode
을 켜거나 끄기 위해 만들어졌습니다.