我一直被这个问题困扰着。如何在Flutter中选择并获取联系人的详细信息?请帮忙。
增加此依赖项
这是当前版本
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(),
),
],
),
),
),
);
}
}
https://pub.dev/packages/contacts_service#-readme-tab-
Iterable<Contact> johns = await ContactsService.getContacts(query : "john");
fluttercontactpicker 包是打开本地电话簿的最佳包。它是空安全的,并且可以自行处理联系人权限。
您可以根据需要选择pickPhoneContact
或pickEmailContact
。
final PhoneContact contact =
await FlutterContactPicker.pickPhoneContact();
如果您想获取整个联系人,则可以使用pickFullContact()
方法。
final FullContact contact =
await FlutterContactPicker.pickFullContact();
注意:这种方法仅适用于Android,而不适用于iOS。因此,如果您使用此方法,可能需要添加平台检查。
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;
}