Bagikan melalui


Senter

Browse sample. Telusuri sampel

Artikel ini menjelaskan cara menggunakan antarmuka .NET Multi-platform App UI (.NET MAUI). IFlashlight Dengan antarmuka ini, Anda dapat mengaktifkan dan menonaktifkan lampu kilat kamera perangkat, untuk meniru senter.

Implementasi IFlashlight default antarmuka tersedia melalui Flashlight.Default properti . IFlashlight Antarmuka dan Flashlight kelas terkandung dalam Microsoft.Maui.Devices namespace layanan.

Mulai

Untuk mengakses fungsionalitas senter, diperlukan penyiapan khusus platform berikut.

Ada dua izin untuk dikonfigurasi dalam proyek Anda: Flashlight dan Camera. Izin ini dapat diatur dengan cara berikut:

  • Tambahkan izin berbasis rakitan:

    Buka file Platforms/Android/MainApplication.cs dan tambahkan atribut assembly berikut setelah using direktif:

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

    - atau -

  • Perbarui Manifes Android:

    Buka file Platforms/Android/AndroidManifest.xml dan tambahkan yang berikut ini di simpulmanifest:

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

    - atau -

  • Perbarui Manifes Android di editor manifes:

    Di Visual Studio klik dua kali pada file Platforms/Android/AndroidManifest.xml untuk membuka editor manifes Android. Kemudian, di bawah Izin yang diperlukan, periksa izin FLASHLIGHT dan KAMERA . Ini akan secara otomatis memperbarui file AndroidManifest.xml .

Jika Anda menetapkan izin ini, Google Play akan secara otomatis memfilter perangkat tanpa perangkat keras tertentu. Anda dapat mengatasi pemfilteran ini dengan menambahkan atribut rakitan berikut ke file Platforms/Android/MainApplication.cs setelah using direktif:

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

Gunakan Senter

Senter dapat dihidupkan dan dimatikan melalui TurnOnAsync() metode dan TurnOffAsync() . Contoh kode berikut mengikat status senter aktif atau nonaktif ke Switch kontrol:

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
    }
}

Selain itu, IsSupportedAsync metode ini dapat dipanggil untuk memeriksa apakah senter tersedia di perangkat, sebelum memanggil TurnOnAsync() metode .

Perbedaan platform

Bagian ini menjelaskan perbedaan khusus platform dengan senter.

Kelas Flashlight telah dioptimalkan berdasarkan sistem operasi perangkat.

API level 23 dan yang lebih tinggi

Pada tingkat API yang lebih baru, Mode Obor akan digunakan untuk menyalakan atau mematikan unit lampu kilat perangkat.

API level 22 dan yang lebih rendah

Tekstur permukaan kamera dibuat untuk menyalakan atau mematikan FlashMode unit kamera.