参考资料

HarmonyOS技术训练营第三期#分布式通讯簿

代码实现

权限申请

在config.json文件添加ohos.permission.READ_CONTACTS和ohos.permission.WRITE_CONTACTS,并且在mainAbility文件动态申请权限,代码如下

"reqPermissions": [
{"name": "ohos.permission.READ_CONTACTS"},
{
"name": "ohos.permission.WRITE_CONTACTS"

【JAVA UI】 HarmonyOS 怎么添加联系人_添加联系人

mainAbility

package com.example.myapplication;

import com.example.myapplication.slice.MainAbilitySlice;
import ohos.aafwk.ability.Ability;
import ohos.aafwk.content.Intent;
import ohos.bundle.IBundleManager;
import ohos.security.SystemPermission;

import java.util.ArrayList;
import java.util.List;

public class MainAbility extends Ability {
@Override
public void onStart(Intent intent) {
requestPermissions();
super.onStart(intent);
super.setMainRoute(MainAbilitySlice.class.getName());
}

private void requestPermissions() {
String[] permissions = {
SystemPermission.READ_CONTACTS, SystemPermission.WRITE_CONTACTS
};
List<String> permissionsToProcess = new ArrayList<>();
for (String permission : permissions) {
if (verifySelfPermission(permission) != IBundleManager.PERMISSION_GRANTED
&& canRequestPermission(permission)) {
permissionsToProcess.add(permission);
}
}
requestPermissionsFromUser(permissionsToProcess.toArray(new String[0]), 0);
}
}

【JAVA UI】 HarmonyOS 怎么添加联系人_JAVA UI_02

代码实现

在MainAbilitySlice代码onstart方法中实现添加联系人,代码如下

package com.example.myapplication.slice;

import com.example.myapplication.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.sysappcomponents.contact.ContactsHelper;
import ohos.sysappcomponents.contact.entity.Contact;
import ohos.sysappcomponents.contact.entity.Name;
import ohos.sysappcomponents.contact.entity.PhoneNumber;

public class MainAbilitySlice extends AbilitySlice {
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_ability_main);
//初始化 ContactsHelper 对象
ContactsHelper contactsHelper = new ContactsHelper(getContext());
//todo 初始化 Contact
Contact contact = new Contact();
//todo 初始化 Name
Name name = new Name();
//todo 设置姓名
name.setFullName("小明");
//todo 初始化 PhoneNumber
PhoneNumber phoneNumber=new PhoneNumber(getContext(),"13888888888",0);
//todo 添加电话对象
contact.addPhoneNumber(phoneNumber);
//todo 添加姓名对象
contact.setName(name);
//todo 添加contact对象

【JAVA UI】 HarmonyOS 怎么添加联系人_JAVA UI_03

运行效果

【JAVA UI】 HarmonyOS 怎么添加联系人_JAVA UI_04

【FAQ】在模拟上运行报错

参考​​权限开发指导​​需要开发者申请对应证书后才能被使用的特殊权限。在申请 WRITE_CONTACTS、READ_CONTACTS这两个权限时候


欲了解更多更全技术文章,欢迎访问​​https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh​