rvndsngwn
rvndsngwn

Reputation: 417

how to solve PermissionHandler error in flutter?

how to solve PermissionHandler error in flutter?
Error is:

the method PermissionHandler isn't defined for the type '_AccessContactState'.

    import 'package:contacts_service/contacts_service.dart';
    import 'package:flutter/material.dart';
    import 'package:flutter/services.dart';
    import 'package:permission_handler/permission_handler.dart';

    class AccessContacts extends StatefulWidget {
      @override
      _AccessContactsState createState() => _AccessContactsState();
    }

    class _AccessContactsState extends State<AccessContacts> {
      Iterable<Contact> _contacts;

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

      getContacts() async {
        PermissionStatus permissionStatus = await _getPermission();
        if (permissionStatus == PermissionStatus.granted) {
          var contacts = await ContactsService.getContacts();
          setState(() {
            _contacts = contacts;
          });
        } else {
          throw PlatformException(
            code: 'PERMISSION_DENIED',
            message: 'Access to location data denied',
            details: null,
          );
        }
      }

      Future<PermissionStatus> _getPermission() async {
        PermissionStatus permission = await PermissionHandler()
            .checkPermissionStatus(PermissionGroup.contacts);
        if (permission != PermissionStatus.granted &&
            permission != PermissionStatus.denied) {
          Map<PermissionGroup, PermissionStatus> permisionStatus =
          await PermissionHandler()
              .requestPermissions([PermissionGroup.contacts]);
          return permisionStatus[PermissionGroup.contacts] ??
              PermissionStatus.unknown;
        } else {
          return permission;
        }
      }

      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(title: Text('Access Contacts example')),
          body: _contacts != null
              ? ListView.builder(
            itemCount: _contacts?.length ?? 0,
            itemBuilder: (context, index) {
              Contact c = _contacts?.elementAt(index);
              return ListTile(
                leading: (c.avatar != null && c.avatar.length > 0)
                    ? CircleAvatar(
                  backgroundImage: MemoryImage(c.avatar),
                )
                    : CircleAvatar(child: Text(c.initials())),
                title: Text(c.displayName ?? ''),
              );
            },
          )
              : CircularProgressIndicator(),
        );
      }
    }`

How to solve PermissionHandler error in flutter?

this is error code screenshot

Upvotes: 2

Views: 4503

Answers (2)

Yuri Haruno
Yuri Haruno

Reputation: 171

Change your code:

await PermissionHandler().checkPermissionStatus(PermissionGroup.contacts);  

To this:

await Permission.contacts.status 

Change this code also:

await PermissionHandler().requestPermissions([PermissionGroup.contacts]);

To this:

await Permission.contacts.request 

Change all of the PermissionGroup words to Permission, take out the Group word.

Upvotes: 1

chunhunghan
chunhunghan

Reputation: 54367

Your code is build with permission_handler: 4.4.0
In pubspec.yaml, please specify permission_handler: 4.4.0

dependencies:
  flutter:
    sdk: flutter
  contacts_service: any
  permission_handler: 4.4.0

enter image description here

Upvotes: 3

Related Questions