HarmonyOS鸿蒙Next中添加联系人到通讯录没反应
HarmonyOS鸿蒙Next中添加联系人到通讯录没反应 您好。点击添加联系人按钮,把联系人的手机号名字等信息保存至手机的通讯录中,但是目前点击之后没有任何反应,请问这种添加方式为什么不可以呢,应该如何正确把信息保存至通讯录中呢?请问应该如何解决?
添加联系人方法代码片段如下:
onConcatBtnClick() {
// 获取context
let context = getContext(this) as Context;
contact.addContact(
context,
{
name: { fullName: '张先生' },
phoneNumbers: [{phoneNumber: '13888888888'}],
emails: [{email: 'zhang@xxx.com'}],
websites: [{website: 'www.baidu.com'}],
note: { noteContent: '巴拉巴拉巴拉巴拉一些备注的信息' },
nickName: { nickName: '小张' },
portrait: { uri: 'xxx' },
imAddresses: [
{
imAddress: "测试地址",
labelName: "CUSTOM_LABEL"
}
],
events: [{ eventDate: "2000.08.20", labelName: 'EVENT_BIRTHDAY' }]
},
(err: BusinessError, data) => {
if (err) {
console.log(`addContact callback: err->${JSON.stringify(err)}`);
return;
}
console.log(`addContact callback: success data->${JSON.stringify(data)}`);
});
}
更多关于HarmonyOS鸿蒙Next中添加联系人到通讯录没反应的实战教程也可以访问 https://www.itying.com/category-93-b0.html
参考下面的步骤:
1、module.json5文件中的权限声明如下:
{
"requestPermissions": [
{
"name": "ohos.permission.READ_CONTACTS",
"reason": "$string:study_reason",
"usedScene": {
"abilities": [
"EntryAbility"
],
"when": "inuse"
}
},
{
"name": "ohos.permission.WRITE_CONTACTS",
"reason": "$string:study_reason",
"usedScene": {
"abilities": [
"EntryAbility"
],
"when": "inuse"
}
},
{
"name": "ohos.permission.INTERNET"
}
]
}
2、略微调整兄弟你提供的代码,操作系统联系人前需要通过代码申请关于contact的相关读写权限,并需要按照步骤1在代码所在的模块的module.json5文件中声明权限
import { BusinessError } from '@kit.BasicServicesKit';
import { contact } from '@kit.ContactsKit';
import { promptAction } from '@kit.ArkUI';
import { abilityAccessCtrl, common, Permissions } from '@kit.AbilityKit';
@Entry
@Component
struct Index {
@State message: string = 'Hello World';
onConcatBtnClick() {
// 获取context
let context = getContext(this) as common.UIAbilityContext;
const permissions: Array<Permissions> = ['ohos.permission.WRITE_CONTACTS','ohos.permission.READ_CONTACTS'];
const contactInfo: contact.Contact = {
name: { fullName: '张先生' },
phoneNumbers: [{ phoneNumber: '13888888888' }],
emails: [{ email: 'zhang@xxx.com' }],
websites: [{ website: 'www.baidu.com' }],
note: { noteContent: '巴拉巴拉巴拉巴拉一些备注的信息' },
nickName: { nickName: '小张' },
portrait: { uri: 'xxx' },
imAddresses: [
{
imAddress: "测试地址",
labelName: "CUSTOM_LABEL"
}
],
events: [{ eventDate: "2000.08.20", labelName: 'EVENT_BIRTHDAY' }]
}
abilityAccessCtrl.createAtManager().requestPermissionsFromUser(context, permissions).then(() => {
try {
contact.addContact(
context,
contactInfo, (err: BusinessError, data) => {
if (err) {
console.log(`addContact callback: err->${JSON.stringify(err)}`);
return;
}
console.log(`addContact callback: success data->${JSON.stringify(data)}`);
});
} catch (err) {
console.error('errCode: ' + err.code + ', errMessage: ' + err.message);
}
})
}
build() {
Column() {
Button('点击').onClick(() => {
this.onConcatBtnClick()
promptAction.showToast({ message: `方法已执行` })
})
}
.width("100%")
.height("100%")
.justifyContent(FlexAlign.Center)
}
}
更多关于HarmonyOS鸿蒙Next中添加联系人到通讯录没反应的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中添加联系人到通讯录没反应,可能的原因包括:
- 权限问题:应用未获得必要的通讯录读写权限。
- 数据同步问题:设备未正确同步云端通讯录数据。
- 系统缓存问题:系统缓存可能导致操作无响应。
- 应用兼容性问题:应用与当前鸿蒙版本不兼容。
- 系统Bug:系统本身可能存在影响通讯录功能的Bug。
- 存储空间不足:设备存储空间不足可能影响通讯录操作。
建议检查权限设置、同步状态、清理缓存、更新应用或系统,或重启设备。
在HarmonyOS鸿蒙Next中添加联系人无反应,可能由以下原因引起:
-
权限问题:确保已授予通讯录读写权限。进入“设置” > “应用管理” > “通讯录” > “权限”,检查权限是否开启。
-
应用缓存:清理通讯录应用缓存。进入“设置” > “应用管理” > “通讯录” > “存储”,点击“清除缓存”。
-
系统更新:检查系统是否为最新版本,更新可能修复已知问题。进入“设置” > “系统和更新” > “软件更新”进行检查。
-
重启设备:尝试重启设备,解决临时性故障。
如果问题仍未解决,建议备份数据后恢复出厂设置或联系官方客服。

