android 跳转到通讯录并获取展示到页面 及android联系人信息获取
2017-02-09 00:15
567 查看
一 :android 跳转到通讯录并获取展示到页面
大致思路;
1.点击跳转到通讯录界面
2.获取通讯录姓名和手机号码
3.回调展示拿过来的姓名和手机号码
(一)跳转界面
大致思路;
1.点击跳转到通讯录界面
2.获取通讯录姓名和手机号码
3.回调展示拿过来的姓名和手机号码
(一)跳转界面
public void jumpSystemContacts(View view){ Uri uri = Uri.parse("content://Contacts/people"); Intent intent = new Intent(Intent.ACTION_PICK, uri); startActivityForResult(intent, 0); }
(二)回调拿值并展示
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode){ case 0: if(data==null) { return; } //处理返回的data,获取选择的联系人信息 Uri uri=data.getData(); String[] contacts=getPhoneContacts(uri); tv_main_name.setText(contacts[0]); tv_main_phonenumber.setText(contacts[1]); break; } super.onActivityResult(requestCode, resultCode, data); }
private String[] getPhoneContacts(Uri uri){ String[] contact=new String[2]; //得到ContentResolver对象 ContentResolver cr = getContentResolver(); //取得电话本中开始一项的光标 Cursor cursor=cr.query(uri,null,null,null,null); if(cursor!=null) { cursor.moveToFirst(); //取得联系人姓名 int nameFieldColumnIndex=cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME); contact[0]=cursor.getString(nameFieldColumnIndex); //取得电话号码 String ContactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + ContactId, null, null); if(phone != null){ phone.moveToFirst(); contact[1] = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); } phone.close(); cursor.close(); } else { return null; } return contact; }
(三)权限配置
<!--添加联系人的权限--> <uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
二 :android联系人信息获取
public void getContacts(View view){ //获取联系人raw_contacts //id name Uri uri=Uri.parse("content://com.android.contacts/raw_contacts"); Cursor cursor=cr.query(uri,null,null,null,null); while (cursor.moveToNext()){ int id=cursor.getInt(cursor.getColumnIndex("_id")); String name=cursor.getString(cursor.getColumnIndex("display_name")); Log.i("test",id+" "+name); //继续获取相对应的联系人的数据(电话号码) Uri uriData=Uri.parse("content://com.android.contacts/raw_contacts/"+id+"/data"); Cursor cursorData=cr.query(uriData,null,null,null,null); while(cursorData.moveToNext()){ String data1=cursorData.getString(cursorData.getColumnIndex("data1")); //int type=cursorData.getInt(cursorData.getColumnIndex("mimetype_id")); String type=cursorData.getString(cursorData.getColumnIndex("mimetype")); if("vnd.android.cursor.item/phone_v2".equals(type)){ Log.i("test"," "+data1+":"+type); } } } }
//联系人名展示
ContentResolver cr = getContentResolver();ListView listView = (ListView) findViewById(R.id.listView);
Uri uri=Uri.parse("content://com.android.contacts/raw_contacts");
Cursor cursor=cr.query(uri,null,null,null,null);
simpleCursorAdapter = new android.widget.SimpleCursorAdapter(this, R.layout.item_list, cursor, new String[]{"_id", "display_name"}, new int[]{R.id.tv_item_list_id, R.id.tv_item_list_name});
listView.setAdapter(simpleCursorAdapter);
相关文章推荐
- Android 内容访问者 和 跳转到通讯录页面获取信息
- Android 获取通讯录联系人信息(下)
- Android软件开发之获取通讯录联系人信息
- Android软件开发之获取通讯录联系人信息(二十九)
- Android软件开发获取通讯录联系人信息
- <转载>Android软件开发之获取通讯录联系人信息
- Android 获取通讯录联系人信息(上)
- Android软件开发之获取通讯录联系人信息(二十九)
- 【实用篇】获取Android通讯录中联系人信息
- Android软件开发之获取通讯录联系人信息(二十九)
- (转)Android软件开发之获取通讯录联系人信息(二十九)
- Android软件开发之获取通讯录联系人信息 + android联系人信息的存储结构 + Android联系人读取操作笔记
- Android软件开发之获取通讯录联系人信息
- Android软件开发之获取通讯录联系人信息
- android 获取通讯录联系人信息
- Android软件开发之获取通讯录联系人信息
- Android软件开发之获取通讯录联系人信息
- Android软件开发之获取通讯录联系人信息(二十九)
- Android软件开发之获取通讯录联系人信息
- Android软件开发之获取通讯录联系人信息