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);
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
- Built-in types and core primitives for a Flutter application. [...]
- Support for asynchronous programming, with classes such as Future and Stream. [...]
- Classes and utilities that supplement the collection support in dart:core. [...]
- Encoders and decoders for converting between different data representations, including JSON and UTF-8. [...]
- Built-in types, collections, and other core functionality for every Dart program. [...]
- Interact with developer tools such as the debugger and inspector. [...]
- Mathematical constants and functions, plus a random number generator. [...]
- Lists that efficiently handle fixed sized data (for example, unsigned 8 byte integers) and SIMD numeric types. [...]
- File, socket, HTTP, and other I/O support for non-web applications. [...]
- Concurrent programming using isolates: independent workers that are similar to threads but don't share memory, communicating only via messages. [...]