Android向通讯录添加联系人的一般方法详解手机开发

以一个简单的例子加以说明,记得需要相应的权限:
<uses-permission android:name="android.permission.READ_CONTACTS" /> 
    <uses-permission android:name="android.permission.WRITE_CONTACTS" />

测试代码,关键的内容就在add函数里面。

package zhangphil.demo; 
 
import android.app.Activity; 
import android.content.ContentUris; 
import android.content.ContentValues; 
import android.net.Uri; 
import android.os.Bundle; 
import android.provider.ContactsContract.CommonDataKinds.Email; 
import android.provider.ContactsContract.CommonDataKinds.Phone; 
import android.provider.ContactsContract.CommonDataKinds.StructuredName; 
import android.provider.ContactsContract.RawContacts; 
import android.provider.ContactsContract.Data; 
import android.widget.Toast; 
 
public class MainActivity extends Activity { 
 
	@Override 
	protected void onCreate(Bundle savedInstanceState) { 
		super.onCreate(savedInstanceState); 
		// setContentView(R.layout.activity_main); 
 
		addContact("zhangphil", "12345678901"); 
	} 
 
	// 一个添加联系人信息的例子 
	public void addContact(String name, String phoneNumber) { 
		// 创建一个空的ContentValues 
		ContentValues values = new ContentValues(); 
 
		// 向RawContacts.CONTENT_URI空值插入, 
		// 先获取Android系统返回的rawContactId 
		// 后面要基于此id插入值 
		Uri rawContactUri = getContentResolver().insert(RawContacts.CONTENT_URI, values); 
		long rawContactId = ContentUris.parseId(rawContactUri); 
		values.clear(); 
 
		values.put(Data.RAW_CONTACT_ID, rawContactId); 
		// 内容类型 
		values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE); 
		// 联系人名字 
		values.put(StructuredName.GIVEN_NAME, name); 
		// 向联系人URI添加联系人名字 
		getContentResolver().insert(Data.CONTENT_URI, values); 
		values.clear(); 
 
		values.put(Data.RAW_CONTACT_ID, rawContactId); 
		values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE); 
		// 联系人的电话号码 
		values.put(Phone.NUMBER, phoneNumber); 
		// 电话类型 
		values.put(Phone.TYPE, Phone.TYPE_MOBILE); 
		// 向联系人电话号码URI添加电话号码 
		getContentResolver().insert(Data.CONTENT_URI, values); 
		values.clear(); 
 
		values.put(Data.RAW_CONTACT_ID, rawContactId); 
		values.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE); 
		// 联系人的Email地址 
		values.put(Email.DATA, "[email protected]"); 
		// 电子邮件的类型 
		values.put(Email.TYPE, Email.TYPE_WORK); 
		// 向联系人Email URI添加Email数据 
		getContentResolver().insert(Data.CONTENT_URI, values); 
 
		Toast.makeText(this, "联系人数据添加成功", Toast.LENGTH_SHORT).show(); 
	} 
}

附录文章:

1,《Android根据联系人姓名首字符顺序读取通讯录》链接:http://blog.csdn.net/zhangphil/article/details/47250747

2,《Android基于PinnedSectionListView实现联系人通讯录》链接:http://blog.csdn.net/zhangphil/article/details/47271741

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/3152.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论