Flutter Error: Permission Denial: opening provider com.android.providers.contacts.ContactsProvider2 from ProcessRecord
Flutter Error: Permission Denial: opening provider com.android.providers.contacts.ContactsProvider2 from ProcessRecord
我需要从手机导入联系人,我用了contacts_service from pub.dev。然后我在 AndroidManifest.xml
中为 android 和 info.plist
中为 iOS 进行了所需的更改,即添加了所需的权限,但我在尝试时仍然收到此错误从 phone.
读取联系人
Permission Denial: opening provider com.android.providers.contacts.ContactsProvider2 from ProcessRecord
我通过请求用户许可解决了这个问题,就像这样,
@override
void initState() {
super.initState();
getContacts();
}
// Function to get permission from the user
_contactsPermissions() async {
PermissionStatus permission = await Permission.contacts.status;
if (permission != PermissionStatus.granted && permission != PermissionStatus.denied) {
Map<Permission, PermissionStatus> permissionStatus = await [Permission.contacts].request();
return permissionStatus[Permission.contacts] ?? PermissionStatus.undetermined;
} else {
return permission;
}
}
//Function to import contacts
getContacts() async {
PermissionStatus contactsPermissionsStatus = await _contactsPermissions();
if (contactsPermissionsStatus == PermissionStatus.granted) {
List<Contact> _contacts = (await ContactsService.getContacts(withThumbnails: false)).toList();
setState(() {
contacts = _contacts;
});
}
}
我需要从手机导入联系人,我用了contacts_service from pub.dev。然后我在 AndroidManifest.xml
中为 android 和 info.plist
中为 iOS 进行了所需的更改,即添加了所需的权限,但我在尝试时仍然收到此错误从 phone.
Permission Denial: opening provider com.android.providers.contacts.ContactsProvider2 from ProcessRecord
我通过请求用户许可解决了这个问题,就像这样,
@override
void initState() {
super.initState();
getContacts();
}
// Function to get permission from the user
_contactsPermissions() async {
PermissionStatus permission = await Permission.contacts.status;
if (permission != PermissionStatus.granted && permission != PermissionStatus.denied) {
Map<Permission, PermissionStatus> permissionStatus = await [Permission.contacts].request();
return permissionStatus[Permission.contacts] ?? PermissionStatus.undetermined;
} else {
return permission;
}
}
//Function to import contacts
getContacts() async {
PermissionStatus contactsPermissionsStatus = await _contactsPermissions();
if (contactsPermissionsStatus == PermissionStatus.granted) {
List<Contact> _contacts = (await ContactsService.getContacts(withThumbnails: false)).toList();
setState(() {
contacts = _contacts;
});
}
}