contacts_service 0.2.5

  • README.md
  • CHANGELOG.md
  • Example
  • Installing
  • Versions
  • 97

contacts_service #

pub package Build Status Coverage Status

A Flutter plugin to access and manage the device's contacts.

Usage #

To use this plugin, add contacts_service as a dependency in your pubspec.yaml file.
For example:

dependencies:  
    contacts_service: ^0.2.5

Permissions #

Android #

Add the following permissions to your AndroidManifest.xml:

<uses-permission android:name="android.permission.READ_CONTACTS" />  
<uses-permission android:name="android.permission.WRITE_CONTACTS" />  

iOS #

Set the NSContactsUsageDescription in your Info.plist file

<key>NSContactsUsageDescription</key>  
<string>This app requires contacts access to function properly.</string>  

Note
contacts_service does not handle the process of asking and checking for permissions. To check and request user permission to access contacts, try using the following plugins: flutter_simple_permissions or permission_handler.

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.

Example #

// Import package  
import 'package:contacts_service/contacts_service.dart';  
  
// Get all contacts on device
Iterable<Contact> contacts = await ContactsService.getContacts();  

// Get all contacts without thumbnail(faster)
Iterable<Contact> contacts = await ContactsService.getContacts(withThumbnails: false);
  
// 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 added  
await ContactsService.addContact(newContact);  
  
// Delete a contact
// The contact must have a valid identifier
await ContactsService.deleteContact(contact);  

// Update a contact
// The contact must have a valid identifier
await ContactsService.updateContact(contact);

// Share a contact as a vcf
await shareVCFCard(context, contact: contact),

Contact Model

// Name
String displayName, givenName, middleName, prefix, suffix, familyName;

// Company
String company, jobTitle;

// Email addresses
Iterable<Item> emails = [];

// Phone numbers
Iterable<Item> phones = [];

// Post addresses
Iterable<PostalAddress> postalAddresses = [];

// Contact avatar/thumbnail
Uint8List avatar;

Example

Todo #

  • [ ] update contact image

Contributions #

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.

Credits #

Heavily inspired from rt2zz's react native plugin

[0.2.5] - April 20th, 2019

  • Added Notes support, and updateContact for Android fix
  • Added Note support for iOS
  • Added public method to convert contact to map using the static _toMap
  • Updated tests
  • Updated example app
  • Bug fixes

[0.2.4] - March 12th, 2019

  • Added support for more phone labels
  • Bug fixes

[0.2.3] - March 2nd, 2019

  • Added permission handling to example app
  • Fixed build errors for Android & iOS

[0.2.2] - March 1st, 2019

  • Feature: Update Contact for iOS & Android
  • Added updateContact method to contacts_service.dart
  • Added updateContact method to SwiftContactsServicePlugin.swift
  • Added unit testing for the updateContact method
  • Fixed formatting discrepancies in the example app (making code easier to read)
  • Fixed formatting discrepancies in contacts_service.dart (making code easier to read)
  • AndroidX compatibility fix for example app
  • Updated example app to show updateContacts method
  • Fixed example app bugs
  • Updated PostalAddress.java and Contact.java (wasn't working properly)
  • Added updateContact method to ContactsServicePlugin.java

[0.2.1] - February 21st, 2019

  • Breaking: Updated dependencies

[0.2.0] - February 19th, 2019

  • Breaking: Updated to support AndroidX

[0.1.1] - January 11th, 2019

  • Added Ability to Share VCF Card (@AppleEducate)

[0.1.0] - January 4th, 2019

  • Update pubspec version and maintainer info for Dart Pub
  • Add withThumbnails and update example (@trinqk)

[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

example/README.md

contacts_service_example #

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:
  contacts_service: ^0.2.5

2. Install it

You can install packages from the command line:

with Flutter:


$ flutter packages get

Alternatively, your editor might support flutter packages get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:contacts_service/contacts_service.dart';
  
Version Uploaded Documentation Archive
0.2.5 Apr 21, 2019 Go to the documentation of contacts_service 0.2.5 Download contacts_service 0.2.5 archive
0.2.4 Mar 12, 2019 Go to the documentation of contacts_service 0.2.4 Download contacts_service 0.2.4 archive
0.2.3 Mar 2, 2019 Go to the documentation of contacts_service 0.2.3 Download contacts_service 0.2.3 archive
0.2.2 Mar 2, 2019 Go to the documentation of contacts_service 0.2.2 Download contacts_service 0.2.2 archive
0.2.1 Feb 22, 2019 Go to the documentation of contacts_service 0.2.1 Download contacts_service 0.2.1 archive
0.2.0 Feb 20, 2019 Go to the documentation of contacts_service 0.2.0 Download contacts_service 0.2.0 archive
0.1.1 Jan 31, 2019 Go to the documentation of contacts_service 0.1.1 Download contacts_service 0.1.1 archive
0.1.0 Jan 11, 2019 Go to the documentation of contacts_service 0.1.0 Download contacts_service 0.1.0 archive
0.0.9 Oct 10, 2018 Go to the documentation of contacts_service 0.0.9 Download contacts_service 0.0.9 archive
0.0.8 Aug 16, 2018 Go to the documentation of contacts_service 0.0.8 Download contacts_service 0.0.8 archive

All 17 versions...

Popularity:
Describes how popular the package is relative to other packages. [more]
96
Health:
Code health derived from static analysis. [more]
98
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
100
Overall:
Weighted score of the above. [more]
97
Learn more about scoring.

We analyzed this package on Apr 24, 2019, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.2.0
  • pana: 0.12.14
  • Flutter: 1.4.7

Platforms

Detected platforms: Flutter

References Flutter, and has no conflicting libraries.

Health suggestions

Fix lib/share.dart. (-2.48 points)

Analysis of lib/share.dart reported 5 hints:

line 26 col 1: The class 'Future' was not exported from 'dart:core' until version 2.1, but this code is required to be able to run on earlier versions.

line 31 col 1: The class 'Future' was not exported from 'dart:core' until version 2.1, but this code is required to be able to run on earlier versions.

line 36 col 1: The class 'Future' was not exported from 'dart:core' until version 2.1, but this code is required to be able to run on earlier versions.

line 48 col 1: The class 'Future' was not exported from 'dart:core' until version 2.1, but this code is required to be able to run on earlier versions.

line 54 col 1: The class 'Future' was not exported from 'dart:core' until version 2.1, but this code is required to be able to run on earlier versions.

Format lib/contacts_service.dart.

Run flutter format to format lib/contacts_service.dart.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.0.0-dev.58.0.flutter-f981f09760 <3.0.0
collection ^1.14.11 1.14.11
flutter 0.0.0
path_provider ^0.5.0+1 0.5.0+1
quiver >=2.0.0 <3.0.0 2.0.3
share_extend ^1.0.4 1.0.8
Transitive dependencies
matcher 0.12.5
meta 1.1.6 1.1.7
path 1.6.2
sky_engine 0.0.99
stack_trace 1.9.3
typed_data 1.1.6
vector_math 2.0.8
Dev dependencies
flutter_test
test ^1.3.0