---
uid: Uno.Features.Flashlight
---
# Flashlight
> [!TIP]
> This article covers Uno-specific information for Flashlight. For a full description of the feature and instructions on using it, see [Lamp Class](https://learn.microsoft.com/uwp/api/windows.devices.lights.lamp).
* `Lamp` API allows you to turn the phone's camera flashlight on and off
## Supported features
| Feature | Windows | Android | iOS | Web (WASM) | macOS | Linux (Skia) | Win 7 (Skia) |
|---------------|-------|-------|-------|-------|-------|-------|-|
| `GetDefaultAsync` | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| `IsEnabled` | ✔ | ✔ | ✔ | ✖ | ✖ | ✖ | ✖ |
| `BrightnessLevel` | ✔ | ✔ | ✔ | ✖ | ✖ | ✖ | ✖ |
## Using `Lamp` with Uno
* The `GetDefaultAsync` method is implemented on all targets and will return `null` where `Lamp` is not supported.
* Make sure to call `Lamp.Dispose()` after use, as implementation on both iOS and Android uses unmanaged resources, and not disposing of them could cause a memory leak. This is in line with WinUI, where the `Lamp` needs to be disposed of as well.
* On **iOS**, in case the device supports the torch, `BrightnessLevel` is fully supported. In case the device has only flash, any non-zero `BrightnessLevel` will result in the full brightness of the flashlight.
* On **Android**, flashlight brightness cannot be controlled, hence any non-zero `BrightnessLevel` results in the full brightness of the flashlight.
## Platform-specific requirements
### Android
For Android, there are two permissions you must configure before using this API in your project. To do that, add the following to `AndroidManifest.xml`:
```xml
```
## Example
```csharp
if (await Lamp.GetDefaultAsync() is Lamp lamp)
{
lamp.IsEnabled = true; // Turn on the flashlight.
lamp.BrightnessLevel = 0.5; // Set brightness of 50 %.
lamp.IsEnabled = false; // Turn off the flashlight.
lamp.Dispose(); // Stop using flashlight and clean up resources.
}
```