如何在Flutter中从联系人中选择单个联系人。

3

我一直被这个问题困扰着。如何在Flutter中选择并获取联系人的详细信息?请帮忙。

4个回答

3

增加此依赖项

这是当前版本

contact_picker: ^0.0.2

import 'package:flutter/material.dart';
import 'package:contact_picker/contact_picker.dart';

void main() {
 runApp(new MyApp());
 } 

class MyApp extends StatefulWidget {
 @override
_MyAppState createState() => new _MyAppState();
}

 class _MyAppState extends State<MyApp> {
  final ContactPicker _contactPicker = new ContactPicker();
  Contact _contact;

  @override
  Widget build(BuildContext context) {
   return new MaterialApp(
   home: new Scaffold(
    appBar: new AppBar(
       title: new Text('Plugin example app'),
     ),
      body: new Center(
      child: new Column(
        mainAxisSize: MainAxisSize.min,
         children: <Widget>[
          new MaterialButton(
            color: Colors.blue,
            child: new Text("CLICK ME"),
            onPressed: () async {
              Contact contact = await _contactPicker.selectContact();
              setState(() {
                _contact = contact;
              });
            },
          ),
          new Text(
            _contact == null ? 'No contact selected.' : _contact.toString(),
          ),
        ],
      ),
    ),
  ),
);
 }
}

0
使用 `contacts_service: ^0.2.5`,您可以通过添加查询来搜索,但是我没有找到按电话或电子邮件查找的方法,如果您有任何想法,请告诉我。

https://pub.dev/packages/contacts_service#-readme-tab-

Iterable<Contact> johns = await ContactsService.getContacts(query : "john");

我想打开电话簿并选择联系人,而不是搜索兄弟。如果您能帮忙。 - Shivam Srivastava
好的,抱歉我没明白,请尝试使用联系人选择器 https://pub.dev/packages/contact_picker - GirlWhoCode

0

fluttercontactpicker 包是打开本地电话簿的最佳包。它是空安全的,并且可以自行处理联系人权限。 您可以根据需要选择pickPhoneContactpickEmailContact

final PhoneContact contact =
await FlutterContactPicker.pickPhoneContact();

如果您想获取整个联系人,则可以使用pickFullContact()方法。

final FullContact contact =
await FlutterContactPicker.pickFullContact();

注意:这种方法仅适用于Android,而不适用于iOS。因此,如果您使用此方法,可能需要添加平台检查。


0
你可以使用 contact_picker 包来管理联系人。
将以下内容添加到你的 pubspec.yaml 文件中。
contact_picker: ^0.0.2

你可以使用像的方法来打开一个联系人选择器并返回一个电话号码:

Future<String> pickMobileNumber() async {
  final contact = await ContactsService.openDeviceContactPicker();
  if (contact == null) {
    return null;
  }
  // Picks the first num with label mobile
  final mobilePhone = contact.phones.firstWhere(
    (phone) => phone.label?.toLowerCase() == 'mobile',
    orElse: () => null,
  );
  if (mobilePhone == null) {
    return null;
  }
  return mobilePhone.value;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接