本文主要是介绍android 访问系统通讯录得到联系人数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
/*** 跳转去获取联系人电话* * @param activity* activity对象*/private void getPhone(Activity activity) {Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);activity.startActivityForResult(intent, REQUEST_GETPHONE);}
得到的东西肯定是要在activity的onActivityResult的方法中接收
case REQUEST_GETPHONE:switch (resultCode) {case RESULT_CANCELED:showToast("取消获取联系人");break;case RESULT_OK:// ContentResolver实例带的方法可实现找到指定的ContentProvider并获取到ContentProvider的数据ContentResolver reContentResolverol = getContentResolver();// URI,每个ContentProvider定义一个唯一的公开的URI,用于指定到它的数据集Uri contactData = data.getData();// 查询就是输入URI等参数,其中URI是必须的,其他是可选的,如果系统能找到URI对应的ContentProvider将返回一个Cursor对象.Cursor cursor = managedQuery(contactData, null, null, null, null);cursor.moveToFirst();// 获得DATA表中的名字String username = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));// 条件为联系人IDString contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));// 获得DATA表中的电话号码,条件为联系人ID,因为手机号码可能会有多个Cursor phone = reContentResolverol.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null);while (phone.moveToNext()) {String usernumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));// tv_dianpu_phone.setText(usernumber);MyLog.e(this, usernumber + ":" + username);}break;default:break;}break;
这样就可以获取到联系人的数据了.保存一下.方法在于积累
这篇关于android 访问系统通讯录得到联系人数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!