flutter_contacts 2.6.0 copy "flutter_contacts: ^2.6.0" to clipboard
flutter_contacts: ^2.6.0 copied to clipboard

Fast, complete contact management for Android, iOS & macOS — all fields, groups, accounts, vCards, native dialogs, listeners, SIM contacts, and number blocking.

2.6.0 #

  • Fix Android's contacts provider crashing (and photos being lost) when many photos are written at once, e.g. createAll() with photos. Bulk photo writes are also several times faster, and photos are visible when the call returns.
  • Behavior change: get() returns null for a missing contact instead of throwing.
  • Behavior change: iOS/macOS labels without a mapping read back as Label(XLabel.custom, 'text'), as on Android.
  • Fix ContactFilter.ids([]) throwing on iOS/macOS.
  • Fix groups.get() returning deleted groups on Android.
  • Blocked-number calls refused by Android now throw security_error, as documented.
  • Fix showCreator() prefill on Android for phonetic names, nicknames and addresses.

2.5.0 #

  • update() and updateAll() now throw read_only_contact instead of silently dropping properties owned by a sync adapter, which Android's provider filters out of the write — thanks @yassinsameh for the request (#95, #260).

2.4.1 #

  • Reject a second showCreator() call on iOS while one is already presented, which previously left the first call's future unresolved.
  • Document that showEditor() also returns null when the contact is deleted from the system editor, not only when the user cancels.

2.4.0 #

  • showEditor() on iOS now waits for the user to finish instead of resolving to null immediately; it returns the contact identifier on save.
  • Fix Android dropping events whose date uses ISO 8601 basic format (19960415, --0415), which vCard 4.0 mandates and Android's vCard importer stores verbatim — thanks @Ruman87 for the report and diagnosis (#248).
  • Fix groups.addContacts() failing with Group has no account on Android 12 and below, where the platform exposes no default account and groups.create() produces a local group — thanks @Eunno-An for the report (#247).
  • Fix the iOS native editor staying on screen when the contact is deleted from it (iOS 26+) — thanks @liliana-tagonsoft for the report and the fix (#250).

2.3.1 #

  • Fix showCreator() name prefill not displaying in some Android contact editors (e.g. Samsung) by passing Insert.NAME instead of a StructuredName row — thanks @CrashKiki for the fix (#241) and @Eunno-An for the report (#242).

2.3.0 #

  • Android now returns the same contacts the system Contacts app displays, instead of filtering on IN_VISIBLE_GROUP = 1: contacts from sync adapters that don't mark them visible (e.g. MS365/Exchange) are included in getAll(), operations by ID work regardless of visibility, and filters matching no contacts return none instead of all (#240).
  • Fix showCreator() dropping the pre-filled photo on Android: the system editor ignores photos passed through the insert intent, so the photo is now applied to the contact after creation when the app holds WRITE_CONTACTS (#242).

2.2.2 #

  • Update README.

2.2.1 #

  • Fix name updates writing to the wrong raw contact on Android contacts with multiple raw contacts (e.g. Google + WhatsApp): the name is now updated in place on the raw contact that already holds it, instead of the raw contact with the most properties (#236).

2.2.0 #

  • Round-trip unknown vCard properties via contact.extras (#21).
  • Migrate Android plugin to Built-in Kotlin; requires Flutter 3.44+ (#234).

2.1.0 #

  • FlutterContacts.native.showPicker() now returns Contact? (with id and displayName always populated) and accepts a properties: set for additional fields. The picker itself remains permissionless on both platforms; on Android, requesting properties requires READ_CONTACTS and throws otherwise. Breaking: replace await …showPicker() with (await …showPicker())?.id (#232).
  • Dedupe phone numbers and emails returned by aggregated contacts on Android, keyed on normalized value + label (#229).

2.0.2 #

  • Fix Flutter SDK resolution for FVM and IDE sync compatibility (#227)

2.0.1 #

  • Fix Android build failure from hardcoded Flutter SDK path (#223)

2.0.0 #

  • Stable 2.0 release. Includes all changes from 2.0.0-beta.1 through 2.0.0-beta.5.

2.0.0-beta.5 #

  • Relax Dart/Flutter version requirements
  • Fix for older Android versions without Settings.getDefaultAccount()

2.0.0-beta.4 #

  • Migrate to Swift Package Manager
  • Migrate to UISceneDelegate

2.0.0-beta.3 #

  • Fix for #214
  • Disable Swift Package Manager for example app

2.0.0-beta.2 #

  • Expose Android identifiers and timestamp
  • Add androidLookup parameter to get()

2.0.0-beta.1 #

  • Complete rewrite with improved architecture and performance
  • Full support for Android, iOS, and macOS platforms
  • Added support for all contact fields including groups, accounts, and metadata
  • vCard import/export support (v2.1, v3.0, v4.0)
  • Native dialogs for contact creation, editing, viewing, and picking
  • Contact change listeners for real-time updates
  • SIM contacts support (Android)
  • Number blocking support (Android)
  • Ringtone management (Android)
  • Profile/Me card support
  • Bulk operations for creating, updating, and deleting contacts
  • Account-aware contact management

1.1.9+2 #

1.1.9+1 #

1.1.9 #

1.1.8 #

  • Upgrade gradle, add null-safety in example_full.

1.1.7+1 #

1.1.7 #

1.1.6 #

1.1.5+1 #

1.1.5 #

  • Edit groups (iOS) / labels (Android) and group/label membership

1.1.4 #

1.1.3 #

1.1.2 #

1.1.1+2 #

  • Update comments

1.1.1+1 #

  • Update README

1.1.1 #

1.1.0+4 #

  • Load rawContact instead of contactId after update, since Android sometimes changes the contactId

1.1.0+3 #

  • Fix withThumbnail on iOS

1.1.0+2 #

  • Fix hashCode and ==

1.1.0+1 #

  • Fix a diacritics bug

1.1.0 #

1.0.0+1 #

1.0.0 #

0.3.3+1 #

0.3.3 #

  • Fix lint warning

0.3.2 #

  • Remove unused dependency

0.3.1 #

  • Change Dart SDK version requirements

0.3.0 #

  • Migrated to null-safety

0.2.2 #

0.2.1 #

  • Format

0.2.0 #

  • Not backward compatible!
  • Photo and thumbnail are now distinct fields
  • Event.date is now Event.year, Event.month, Event.day
  • Convenience methods contact.insert(), contact.update(), contact.delete()
  • Much more advanced vCard parsing and exporting (to version 3.0 and 4.0)
  • We can now add multiple listeners
  • Removed dependencies to build_runner and json_serializable
  • Implemented toString(), hashCode and operator== for contact and properties
  • Support for notes on iOS13+ by setting FlutterContacts.config.includeNotesOnIos13AndAbove = true
  • Added tests

0.1.3 #

  • Remove extra print statements

0.1.2 #

0.1.1 #

0.1.0 #

  • Support for vCard parsing and exporting
  • Add pedantic static analyzer
  • Make default values non-const so they can be mutated
  • Add tests
  • Update dependencies
  • Deduplicate events
  • Rename socialMedia.dart -> social_media.dart

0.0.7 #

  • Bug fix with normalized phone number

0.0.6 #

  • Added normalized phone numbers (android only)
  • Deduplicate phone numbers and emails by default

0.0.5 #

  • Improved README and dartdoc.
  • Added option to getFullContacts() with high-res photos.
  • Fixed bug on iOS where low-res photos were fetched instead of high-res and vice-versa.
  • Better Kotlin null safety.

0.0.4 #

  • newContact() now returns the full contact instead of ID / raw ID.

0.0.3 #

  • Fix README typos.

0.0.2 #

  • Fix support for iOS.

0.0.1 #

  • Initial release.
502
likes
160
points
298k
downloads

Documentation

API reference

Publisher

verified publisherquis.co

Weekly Downloads

Fast, complete contact management for Android, iOS & macOS — all fields, groups, accounts, vCards, native dialogs, listeners, SIM contacts, and number blocking.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

flutter

More

Packages that depend on flutter_contacts

Packages that implement flutter_contacts