flutter_macos_permissions 2.0.3 copy "flutter_macos_permissions: ^2.0.3" to clipboard
flutter_macos_permissions: ^2.0.3 copied to clipboard

A Flutter plugin for requesting camera, microphone, and notification permissions on macOS.

dashstack_poster

flutter macos permissions #

A simple Flutter plugin to request Camera, Microphone, and Notification permissions on macOS.

This plugin provides an easy-to-use API using method channels to handle macOS permissions in your Flutter desktop apps.

✨ Features #

πŸŽ₯ Request Camera permission

🎀 Request Microphone permission

πŸ”” Request Notification permission

πŸ”Ž Check current permission status

πŸ“ Works with Flutter macOS desktop apps


How to use it ? #

1. Add dependency #

Add this to your package's pubspec.yaml file:

dependencies:
 flutter_macos_permissions: <latest_version>

2. Install it You can install packages from the command line: #

with pub :

$ pub get

with Flutter :

$ flutter pub get

3. Import it #

Now in your Dart code, you can use :

import 'package:flutter_macos_permissions/flutter_macos_permissions.dart';

4.How to Use it ? #

Sample app demonstrates how simple the usage of the library actually is.

Using flutter_macos_permissions in your project easy to intregate.

Build permission with FlutterMacosPermissions #

πŸ”Ή Request permissions #

  • You can request permissions for Camera, Microphone, and Notifications :
 String _status = "Idle";

  void _request(String type) async {
    bool granted = false;
    try {
      switch (type) {
        case 'camera':
          granted = await FlutterMacosPermissions.requestCamera();
          break;
        case 'microphone':
          granted = await FlutterMacosPermissions.requestMicrophone();
          break;
        case 'notification':
          granted = await FlutterMacosPermissions.requestNotification();
          break;
      }
      setState(() {
        _status = '$type permission: ${granted ? "Granted" : "Denied"}';
      });
    } catch (e) {
      setState(() {
        _status = 'Error: $e';
      });
    }
  }

Build UI buttons #

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('MacOS Permissions')),
      body: SingleChildScrollView(
        child: Column(
          children: [
            const SizedBox(height: 20),
            Container(
              padding: const EdgeInsets.all(16),
              margin: const EdgeInsets.symmetric(horizontal: 20),
              decoration: BoxDecoration(
                color: Colors.transparent,
                borderRadius: BorderRadius.circular(12),
                border: Border.all(
                  color: Colors.grey.shade400,
                  width: 2, // Border width
                ),
              ),
              child: Text(
                status,
                style: const TextStyle(fontSize: 16),
              ),
            ),
            const SizedBox(height: 20),
            permissionCard(
              'Camera',
              Icons.camera_alt,
                  () => request('camera'),
                  () => checkStatus('cameraStatus'),
            ),
            permissionCard(
              'Microphone',
              Icons.mic,
                  () => request('microphone'),
                  () => checkStatus('microphoneStatus'),
            ),
            permissionCard(
              'Notifications',
              Icons.notifications,
                  () => request('notification'),
                  () => checkStatus('notificationStatus'),
            ),
          ],
        ),
      ),
    );
  }

πŸ“Έ Example #

without Any Permission with Camera Permission with Microphone Permission with Notification Permission
idel camera permission microphone permission Notification permission

πŸ”Ή Check permission status #

  • You can also check the current status without requesting and with requesting.
  • Status will return one of the following: authorized, denied, restricted, notDetermined.
/// Check status (without requesting)
  void _checkStatus(String type) async {
    String status = 'Unknown';
    try {
      switch (type) {
        case 'cameraStatus':
          status = await FlutterMacosPermissions.cameraStatus();
          break;
        case 'microphoneStatus':
          status = await FlutterMacosPermissions.microphoneStatus();
          print('microphone status: $status');
          break;
        case 'notificationStatus':
          status = await FlutterMacosPermissions.notificationStatus();
          print('checking notification status $status');
          break;
      }
      setState(() {
        _status = 'Status $type β†’ $status ';
      });
    } catch (e) {
      setState(() => _status = 'Error while checking $type: $e');
    }
  }

Build UI buttons #

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('MacOS Permissions')),
      body: SingleChildScrollView(
        child: Column(
          children: [
            const SizedBox(height: 20),
            Container(
              padding: const EdgeInsets.all(16),
              margin: const EdgeInsets.symmetric(horizontal: 20),
              decoration: BoxDecoration(
                color: Colors.transparent,
                borderRadius: BorderRadius.circular(12),
                border: Border.all(
                  color: Colors.grey.shade400,
                  width: 2, // Border width
                ),
              ),
              child: Text(
                status,
                style: const TextStyle(fontSize: 16),
              ),
            ),
            const SizedBox(height: 20),
            permissionCard(
              'Camera',
              Icons.camera_alt,
                  () => request('camera'),
                  () => checkStatus('cameraStatus'),
            ),
            permissionCard(
              'Microphone',
              Icons.mic,
                  () => request('microphone'),
                  () => checkStatus('microphoneStatus'),
            ),
            permissionCard(
              'Notifications',
              Icons.notifications,
                  () => request('notification'),
                  () => checkStatus('notificationStatus'),
            ),
          ],
        ),
      ),
    );
  }

πŸ“Έ Example #

Camera Status Microphone Status Notification Status
Camera Microphone Notification

Bugs and Feedback #

We welcome and appreciate any suggestions you may have for improvement. For bugs, questions, and discussions please use the GitHub Issues.

Acknowledgments #

It extends Flutter’s foundation to provide a ready-to-use, customizable currency formatter widget.While Flutter and intl provide the base, flutter_macos_permissions simplifies the process by combining widgets and formatting logic into a single package you can drop into any app.

Contribution #

The DashStack team enthusiastically welcomes contributions and project participation! There are a bunch of things you can do if you want to contribute! The Contributor Guide has all the information you need for everything from reporting bugs to contributing new features.

Credits #

flutter_macos_permissions is owned and maintained by the Dashstack Infotech,Surat. Follow us for updates and new releases πŸš€.

4
likes
0
points
96
downloads

Publisher

verified publisherdashstack.tech

Weekly Downloads

A Flutter plugin for requesting camera, microphone, and notification permissions on macOS.

Homepage
Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on flutter_macos_permissions

Packages that implement flutter_macos_permissions