A Flutter plugin to access and manage the device's contacts.
To use this plugin, add
contacts_service as a dependency in your
Make sure you add the following permissions to your Android Manifest:
<uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" />
On iOS, make sure to set
NSContactsUsageDescription in the
<key>NSContactsUsageDescription</key> <string>This app requires contacts access to function properly.</string>
To check and request user permission to access contacts, I recommend using the following plugin: flutter_simple_permissions
If you do not request user permission or have it granted, the application will fail. For testing purposes, you can manually set the permissions for your test app in Settings for your app on the device that you are using. For Android, go to "Settings" - "Apps" - select your test app - "Permissions" - then turn "on" the slider for contacts.
// Import package import 'package:contacts_service/contacts_service.dart'; // Get all contacts Iterable<Contact> contacts = await ContactsService.getContacts(); // Get contacts matching a string Iterable<Contact> johns = await ContactsService.getContacts(query : "john"); // Add a contact // The contact must have a firstName / lastName to be successfully addded await ContactsService.addContact(newContact); //Delete a contact await ContactsService.deleteContact(contact);
- [ ] update contact
- [ ] add withThumbnails optional parameter in getContacts method
Contributions are welcome! If you find a bug or want a feature, please fill an issue.
If you want to contribute code please create a pull request.
Heavily inspired from rt2zz's react native plugin
[0.0.9] - October 10th, 2018
- Fix an issue when fetching contacts on Android
[0.0.8] - August 16th, 2018
- Fix an issue with phones being added to emails on Android
- Update plugin for dart 2
[0.0.7] - July 10th, 2018
- Fix PlatformException on iOS
- Add a refresh to the contacts list in the sample app when you add a contact
- Return more meaningful errors when addContact() fails on iOS
- Code tidy up
[0.0.6] - April 13th, 2018
- Add contact thumbnails
[0.0.5] - April 5th, 2018
- Fix with dart2 compatibility
[0.0.4] - February 1st, 2018
- Implement deleteContact(Contact c) for Android and iOS
[0.0.3] - January 31st, 2018
- Implement addContact(Contact c) for Android and iOS
[0.0.2] - January 30th, 2018
- Now retrieving contacts' prefixes and suffixes
[0.0.1] - January 30th, 2018
- All contacts can be retrieved
- Contacts matching a string can be retrieved
Demonstrates how to use the contacts_service plugin.
Getting Started #
For help getting started with Flutter, view our online documentation.
Use this package as a library
1. Depend on it
Add this to your package's pubspec.yaml file:
dependencies: ngobrel_contacts: ^0.0.2
2. Install it
You can install packages from the command line:
$ flutter pub get
Alternatively, your editor might support
flutter pub get.
Check the docs for your editor to learn more.
3. Import it
Now in your Dart code, you can use:
import 'package:ngobrel_contacts/generated/i18n.dart'; import 'package:ngobrel_contacts/contacts.dart';
Describes how popular the package is relative to other packages. [more]
Code health derived from static analysis. [more]
Reflects how tidy and up-to-date the package is. [more]
Weighted score of the above. [more]
We analyzed this package on Dec 11, 2019, and provided a score, details, and suggestions below. Analysis was completed with status completed using:
- Dart: 2.6.1
- pana: 0.12.21
- Flutter: 1.9.1+hotfix.6
flutter format to format
flutter format to format
Maintenance issues and suggestions
Homepage URL doesn't exist. (-20 points)
At the time of the analysis the
https://github.com/ngobrel/ngobrel-contacts was unreachable.
Package is pre-v0.1 release. (-10 points)
While nothing is inherently wrong with versions of
0.0.*, it might mean that the author is still experimenting with the general direction of the API.
Package is getting outdated. (-1.37 points)
The package was last published 52 weeks ago.