permission_plus 1.0.0 copy "permission_plus: ^1.0.0" to clipboard
permission_plus: ^1.0.0 copied to clipboard

A Flutter plugin for requesting and checking permissions.

example/lib/main.dart

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

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

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

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

class _MyAppState extends State<MyApp> {
  String _status = 'Tap a permission to request it';

  Future<void> _requestPermission(PermissionType type) async {
    try {
      final status = await PermissionPlus.requestPermission(type);
      setState(() {
        _status = '${type.name}: ${status.name}';
      });
      if (status == PermissionStatus.permanentlyDenied) {
        await PermissionPlus.openSettings();
      }
    } catch (e) {
      setState(() {
        _status = '${type.name}: Error - $e';
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text('Permission Plus Example')),
        body: Column(
          children: [
            Padding(
              padding: const EdgeInsets.all(16),
              child: Text(
                _status,
                style: const TextStyle(
                  fontSize: 16,
                  fontWeight: FontWeight.bold,
                ),
              ),
            ),
            Expanded(
              child: ListView(
                children: [
                  for (final type in PermissionType.values)
                    ListTile(
                      title: Text(type.name),
                      trailing: const Icon(Icons.chevron_right),
                      onTap: () => _requestPermission(type),
                    ),
                ],
              ),
            ),
          ],
        ),
      ),
    );
  }
}