使用联系服务添加联系人时出现错误。
Contact newContact = new Contact();
newContact.givenName ="Ajay";
newContact.familyName ="abc";
newContact.phones = [Item(label: "mobile",value: "9998887771")];
await ContactsService.addContact(newContact);
答案 0 :(得分:1)
这将解决您的问题:
现在可以处理权限的最新版本是
permission_handler: ^5.0.1+1
Future<void> saveContactInPhone() async {
try {
print("saving Contact");
PermissionStatus permission = await Permission.contacts.status;
if (permission != PermissionStatus.granted) {
await Permission.contacts.request();
PermissionStatus permission = await Permission.contacts.status;
if (permission == PermissionStatus.granted) {
Contact newContact = new Contact();
newContact.givenName ="Ajay";
newContact.familyName ="abc";
newContact.phones = [Item(label: "mobile",value: "9998887771")];
await ContactsService.addContact(newContact);
} else {
//_handleInvalidPermissions(context);
}
} else {
Contact newContact = new Contact();
newContact.givenName ="Ajay";
newContact.familyName ="abc";
newContact.phones = [Item(label: "mobile",value: "9998887771")];
await ContactsService.addContact(newContact);
}
print("object");
} catch (e) {
print(e);
}
}
这对我来说很好。
答案 1 :(得分:0)
这是我的联系人保存代码,可在Android和iOS上使用,请尝试输入
Contact newContact = new Contact();
newContact.givenName = NAME; //NAME = desire name
newContact.emails = [Item(label: "email", value: EMAIL)]; //EMAIL = desire email
newContact.phones = [Item(label: "phone", value: PHONE)]; //PHONE = desire phone
newContact.company = COMPANY; //COMPANY = desire company name
newContact.jobTitle = JOB_TITLE; //JOB_TITLE = desire job title
await ContactsService.addContact(newContact);
答案 2 :(得分:0)
我有同样的问题。为解决此问题,您应该对联系人中的写入数据应用权限。这是危险的权限,因此仅在清单中添加权限是不够的。
对于应用或拒绝权限的呼叫窗口,可以使用| id | location_id | ancestor_id | position |
|----|-------------|-------------|----------|
| 1 | 2 | 1 | 1 |
| 2 | 3 | 2 | 1 |
| 3 | 3 | 1 | 2 |
| 4 | 4 | 3 | 1 |
| 5 | 4 | 2 | 2 |
| 6 | 4 | 1 | 3 |
。
permission_handler 4.2.0
调用此方法后,您可以申请许可,并且将添加联系人。 顺便说一句,只有具有Android 6.0(API级别23)或更高版本的android设备才需要此解决方案。在较低版本中,安装应用程序时,您将应用所有权限。
答案 3 :(得分:0)
尝试这样解决您的问题
PermissionStatus permission = await PermissionHandler()
.checkPermissionStatus(PermissionGroup.contacts);
if (permission != PermissionStatus.granted) {
await PermissionHandler().requestPermissions([PermissionGroup.contacts]);
PermissionStatus permission = await PermissionHandler()
.checkPermissionStatus(PermissionGroup.contacts);
if (permission == PermissionStatus.granted) {
Contact newContact = new Contact();
newContact.givenName ="Ajay";
newContact.familyName ="abc";
newContact.phones = [Item(label: "mobile",value: "9998887771")];
await ContactsService.addContact(newContact);
} else {
//_handleInvalidPermissions(context);
}
} else {
Contact newContact = new Contact();
newContact.givenName ="Ajay";
newContact.familyName ="abc";
newContact.phones = [Item(label: "mobile",value: "9998887771")];
await ContactsService.addContact(newContact);
}
答案 4 :(得分:0)
如果您已经在使用 PermissionHandler
,但仍然遇到此错误,请确保您在 AndroidManifest.xml 中声明您的应用使用写入联系人的权限。
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.app">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS" /> <!-- this one! -->
other stuff....
</manifest>