Share via


Xamarin.Essentials:手電筒筒筒

手電筒類別可以開啟或關閉裝置相機閃光燈,將其變為手電筒。

開始使用

若要開始使用此 API,請閱讀 入門指南Xamarin.Essentials,以確保連結庫已正確安裝並設定在您的專案中。

若要存取手電筒功能,需要下列平台特定設定。

需要手電筒和相機的權限,並且必須在 Android 專案中設定。 能以下列方式新增:

開啟 [Properties] 資料夾下的 AssemblyInfo.cs 檔案並新增:

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

或更新 Android 資訊清單:

開啟 [Properties] 資料夾下的 AndroidManifest.xml 檔案並在 [manifest] 節點內新增下列內容。

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

禍以滑鼠右鍵按一 Android 專案並開啟專案的屬性。 在 [Android 資訊清單] 下,尋找 [必要權限] 區域並選取 [手電筒] 和 [相機] 權限。 這將會自動更新 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 啟動時 Xamarin.Essentials ,必須在 方法中 OnCreate 初始化:

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
}

平台實作特性

手電筒類別已根據裝置的作業系統進行最佳化。

API 層級 23 與更高版本

在較新的 API 層級上,手電筒模式將用於開啟或關閉裝置的閃光燈單位。

API 層級22 與更低版本

會建立相機表面紋理,以開啟或關閉相機單位的 FlashMode

API

Channel 9YouTube 上尋找更多 Xamarin 影片。