需要帮助以访问 android 中的内置联系人系统
Posted
技术标签:
【中文标题】需要帮助以访问 android 中的内置联系人系统【英文标题】:Need help for accessing system built in contacts in android 【发布时间】:2011-09-15 10:41:17 【问题描述】:我是 android 新手。我想使用 android 提供的内置联系人管理工具的系统。我进行了很多搜索,但无法确切知道如何进行。所以请帮助我了解如何操作从代码(而不是从 GUI)添加联系人,如何在我的应用程序中访问它们(只需在 textview 中显示所有记录)。 是否可以在不使用 SQLite 或文件操作的情况下做到这一点(意味着只是在系统内存中读写)???
提前谢谢...
【问题讨论】:
【参考方案1】:看看这段代码!
btn_existing_contacts.setOnClickListener(new OnClickListener()
public void onClick(View v)
Intent intent_contacts = new Intent(Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI);
/*contacts.setAction(android.content.Intent.ACTION_VIEW);
contacts.setData(People.CONTENT_URI);*/
startActivityForResult(intent_contacts, 0);
//displayContacts();
);
从联系人屏幕返回后,
@Override
protected void onActivityResult(int requestCode, int resultCode,Intent data)
super.onActivityResult(requestCode, resultCode, data);
String name,mailid,id;
switch(requestCode)
case 0:
if(resultCode == RESULT_OK )
Uri contactdata = data.getData();
Cursor cur = managedQuery(contactdata, null, null, null, null);
if(cur.moveToFirst())
id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
Cursor emailCur = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,null,
ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?",new String[]id, null);
emailCur.moveToFirst();
String email = emailCur.getString(emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
name = cur.getString(cur.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
//mailid = cur.getString(cur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
//mailid = cur.getString(cur.getColumnIndex(ContactsContract.CommonDataKinds.Email._ID));
//Toast.makeText(context_contact, "Name:"+name+"\nmailid:"+email, Toast.LENGTH_SHORT).show();
Intent intent_add_invitees = new Intent(<ClassContext>,<ur classname>.class);
intent_add_invitees.putExtra("invitee_name", name);
intent_add_invitees.putExtra("invitee_mailid", email);
setResult(RESULT_OK, intent_add_invitees);
finish();
【讨论】:
以上是关于需要帮助以访问 android 中的内置联系人系统的主要内容,如果未能解决你的问题,请参考以下文章