ITADN
s0nerik/fast_contacts
s0nerik/fast_contacts · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

fast_contacts

Version Likes Points Downloads

一种比 contacts_service] 和 flutter_contact] 快得多的替代方案,用于读取设备的联系人簿。

该插件经过优化,能够以最佳性能获取所有联系人列表。根据设备不同,使用该插件加载 1000 个联系人所需时间应在 200 毫秒左右或更短。

使用方法

要使用此插件,请在您的 pubspec.yaml 文件](https://flutter.io/platform-plugins/)中将 fast_contacts 添加为[依赖项]。

权限

Android

在您的 AndroidManifest.xml 中添加以下权限:

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

iOS

在您的Info.plist文件中设置NSContactsUsageDescription

<key>NSContactsUsageDescription</key>
<string>Description of why you need the contacts permission.</string>

注意 fast_contacts 不支持权限处理。在访问联系人信息之前,请使用专用插件(如 permission_handler)来请求相应权限。

可用的联系人信息

  • ID
  • 显示名称
  • 结构化名称(前缀、名字、中间名、姓氏、后缀)
  • 邮箱
  • 电话号码
  • 所属机构(公司、部门、职位描述)

示例

// Import package
import 'package:fast_contacts/fast_contacts.dart';

// Get all contacts
final contacts = await FastContacts.getAllContacts();

// Get single contact by ID
final contact = await FastContacts.getContact(contactId);

// Get contact's image (thumbnail)
final thumbnail = await FastContacts.getContactImage(contact.id);

// Get contact's image (full size)
final thumbnail = await FastContacts.getContactImage(contact.id, size: ContactImageSize.fullSize);

如需更完整的用法示例,请参阅example项目。

性能表现

在 Android(三星 Galaxy S8)和 iOS(iPhone 8)设备上,一次性加载 1000 个以上联系人(显示名称、结构化名称、电话号码、电子邮件地址)大约需要 200 毫秒。

Android: Samsung Galaxy S8

iOS: iPhone 8