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

A Flutter plugin to check and request app permissions on Android and iOS using a unified and simple API.

example/lib/main.dart

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

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

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

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      debugShowCheckedModeBanner: false,
      home: PermissionExamplePage(),
    );
  }
}

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

  @override
  State<PermissionExamplePage> createState() => _PermissionExamplePageState();
}

class _PermissionExamplePageState extends State<PermissionExamplePage> {
  AppPermissionManagerStatus? _status;

  Future<void> _requestPermission(
      AppPermissionManagerPermission permission,
      ) async {
    final status = await AppPermissionManager.request(permission);

    setState(() {
      _status = status;
    });

    if (status == AppPermissionManagerStatus.permanentlyDenied) {
      await AppPermissionManager.openAppSettings();
    }
  }

  Widget _permissionButton({
    required String title,
    required AppPermissionManagerPermission permission,
  }) {
    return Padding(
      padding: const EdgeInsets.only(bottom: 12),
      child: ElevatedButton(
        onPressed: () => _requestPermission(permission),
        child: Text(title),
      ),
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('App Permission Manager'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.stretch,
          children: [
            _permissionButton(
              title: 'Request Camera Permission',
              permission: AppPermissionManagerPermission.camera,
            ),

            _permissionButton(
              title: 'Request Microphone Permission',
              permission: AppPermissionManagerPermission.microphone,
            ),

            _permissionButton(
              title: 'Request Location Permission',
              permission: AppPermissionManagerPermission.location,
            ),

            _permissionButton(
              title: 'Request Contacts Permission',
              permission: AppPermissionManagerPermission.contacts,
            ),

            _permissionButton(
              title: 'Request Notifications Permission',
              permission: AppPermissionManagerPermission.notifications,
            ),

            _permissionButton(
              title: 'Request Phone Permission',
              permission: AppPermissionManagerPermission.phone,
            ),

            const SizedBox(height: 24),

            Text(
              'Permission Status:',
              style: Theme.of(context).textTheme.titleMedium,
            ),
            const SizedBox(height: 8),

            Text(
              _status?.name ?? 'No permission requested',
              style: const TextStyle(
                fontSize: 18,
                fontWeight: FontWeight.bold,
              ),
            ),
          ],
        ),
      ),
    );
  }
}
1
likes
150
points
27
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter plugin to check and request app permissions on Android and iOS using a unified and simple API.

Documentation

API reference

License

MIT (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on app_permission_manager

Packages that implement app_permission_manager