flashlight_plugin 0.0.1 copy "flashlight_plugin: ^0.0.1" to clipboard
flashlight_plugin: ^0.0.1 copied to clipboard

PlatformAndroid

A Flutter Plugin to control the flashlight on android devices that are Android 6.0 or higher

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:flashlight_plugin/flashlight_plugin.dart';

void main() {
  runApp(const FlashlightApp());
}

class FlashlightApp extends StatefulWidget {
  const FlashlightApp({super.key});

  @override
  State<FlashlightApp> createState() => _MyAppState();
}

class _MyAppState extends State<FlashlightApp> {
  bool _isFlashlightOn = false;
  bool _hasFlashlight = false;
  String _statusMessage = 'Checking flashlight...';

  @override
  void initState() {
    super.initState();
    _checkFlashlight();
  }

  Future<void> _checkFlashlight() async {
    final hasFlash = await FlashlightPlugin.hasFlashlight();
    setState(() {
      _hasFlashlight = hasFlash;
      _statusMessage = hasFlash
          ? 'Flashlight available'
          : 'No flashlight available on this device';
    });
  }

  Future<void> _toggleFlashlight() async {
    if (!_hasFlashlight) {
      setState(() {
        _statusMessage = 'No flashlight available';
      });
      return;
    }

    bool success;
    if (_isFlashlightOn) {
      success = await FlashlightPlugin.turnOff();
    } else {
      success = await FlashlightPlugin.turnOn();
    }

    if (success) {
      setState(() {
        _isFlashlightOn = !_isFlashlightOn;
        _statusMessage = _isFlashlightOn
            ? 'Flashlight is ON'
            : 'Flashlight is OFF';
      });
    } else {
      setState(() {
        _statusMessage = 'Failed to toggle flashlight';
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          centerTitle: true,
          title: const Text('Simple Flashlight'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Icon(
                _isFlashlightOn ? Icons.flashlight_on : Icons.flashlight_off,
                size: 100,
                color: _isFlashlightOn ? Colors.yellow : Colors.grey,
              ),
              const SizedBox(height: 30),
              Text(
                _statusMessage,
                style: const TextStyle(fontSize: 18),
                textAlign: TextAlign.center,
              ),
              const SizedBox(height: 30),
              ElevatedButton(
                onPressed: _hasFlashlight ? _toggleFlashlight : null,
                style: ElevatedButton.styleFrom(
                  padding: const EdgeInsets.symmetric(
                    horizontal: 40,
                    vertical: 15,
                  ),
                ),
                child: Text(
                  _isFlashlightOn ? 'Turn OFF' : 'Turn ON',
                  style: const TextStyle(fontSize: 18),
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
0
likes
160
points
12
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter Plugin to control the flashlight on android devices that are Android 6.0 or higher

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on flashlight_plugin

Packages that implement flashlight_plugin