Flashlight
本文說明如何使用 .NET 多平臺應用程式 UI (.NET MAUI) IFlashlight 介面。 透過這個介面,您可以開啟和關閉裝置的相機閃爍,以模擬手電筒筒筒筒。
介面的預設實作 IFlashlight
可透過 Flashlight.Default 屬性取得。 IFlashlight
介面和Flashlight
類別都包含在 命名空間中Microsoft.Maui.Devices
。
開始使用
若要存取手電筒筒功能,需要下列平臺特定設定。
在您的項目設定有兩個權限: Flashlight
與 Camera
。 您可以透過下列方式來設定這些權限:
新增元件型權限:
開啟 Platform/Android/MainApplication.cs 檔案,並在 指示詞之後
using
新增下列元件屬性:[assembly: UsesPermission(Android.Manifest.Permission.Flashlight)] [assembly: UsesPermission(Android.Manifest.Permission.Camera)]
- 或 -
更新 Android 指令清單:
開啟 [平臺/Android/AndroidManifest.xml] 檔案,並在
manifest
節點中新增下列內容:<uses-permission android:name="android.permission.FLASHLIGHT" /> <uses-permission android:name="android.permission.CAMERA" />
- 或 -
更新指令清單編輯器中的 Android 指令清單:
在 Visual Studio 中按兩下 [平臺/Android/AndroidManifest.xml ] 檔案,以開啟 Android 指令清單編輯器。 然後,在 [必要許可權] 底下,檢查 FLASHLIGHT 和 CAMERA 許可權。 這將會自動更新 AndroidManifest.xml 檔案。
如果您設定這些許可權, Google Play 會自動篩選掉沒有特定硬體的裝置 。 您可以在 指示詞之後using
,將下列元件屬性新增至 Platform/Android/MainApplication.cs 檔案,以解決此問題:
[assembly: UsesFeature("android.hardware.camera", Required = false)]
[assembly: UsesFeature("android.hardware.camera.autofocus", Required = false)]
使用手電筒筒筒
可以透過 TurnOnAsync() 和 TurnOffAsync() 方法開啟和關閉手電筒筒。 下列程式代碼範例會將手電筒筒的開啟或關閉狀態系結至 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
。