contant_utils.dart
2.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import 'package:flutter/material.dart';
import 'package:flutter_native_contact_picker/flutter_native_contact_picker.dart';
import 'package:flutter_native_contact_picker/model/contact.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:one_key/utils/misc.dart';
import 'package:permission_handler/permission_handler.dart';
class ContantUtils {
static openAddressBook(BuildContext context, {VoidCallback? callback}) async {
if (!(await checkContactPermission())) {
PermissionStatus permissionStatus = await contactPermissionStatus();
if (permissionStatus == PermissionStatus.permanentlyDenied) {
//用户选择不在弹出权限提示框
print('never');
DialogUtil.openAlertDialog(
context, '未获得通讯录权限', "请在手机的权限管理里,将通讯录权限开启", '去设置', 340.0,
onTap: () {
openSetting();
if (Navigator.canPop(context)) {
Navigator.pop(context, '');
}
});
} else {
// 申请权限
bool canContacts = await requestContactPermission();
if (canContacts) {
if (callback != null) {
callback();
}
} else {
//拒绝通讯录权限 , 苹果拒绝权限后,不再提示权限框,进入此处
DialogUtil.openAlertDialog(
context, '未获得通讯录权限', "请在手机的权限管理里,将通讯录权限开启。", '去设置', 340.0,
onTap: () {
openSetting();
if (Navigator.canPop(context)) {
Navigator.pop(context, '');
}
});
}
}
} else {
if (callback != null) {
callback();
}
}
}
static Future<ContantsModelMy?> getContactData() async {
final FlutterNativeContactPicker contactPicker =
FlutterNativeContactPicker();
Contact? contact = await contactPicker.selectContact();
if (contact != null) {
String? fullName =
contact.fullName?.replaceAll(new RegExp(r"\s+\b|\b\s"), "") ?? '';
// String? phone =
// contact.selectedPhoneNumber?.replaceAll(new RegExp(r"\s+\b|\b\s"), "");
// if (fullName.compareTo(phone) == 0) {
// fullName = '';
// } else {
// fullName = contact.fullName!;
// }
String phoneNumber = contact.phoneNumbers?.first
.replaceAll(new RegExp(r"\s+"), "")
.replaceAll(' ', '') ??
'';
ContantsModelMy contantsModelMy = ContantsModelMy();
contantsModelMy.fullName = fullName;
contantsModelMy.phoneNumber = phoneNumber;
return contantsModelMy;
}
return null;
}
}
class ContantsModelMy {
String? fullName;
String? phoneNumber;
}