Android调用系统选择联系人,适合更多种手机,Google官方推荐
来源:互联网 发布:小偷公司知乎 编辑:程序博客网 时间:2024/05/16 12:27
跳转到系统联系人选择界面,获取相应联系人信息
调用方式:
Intent i = new Intent();i.setAction(Intent.ACTION_PICK);i.setData(ContactsContract.Contacts.CONTENT_URI);startActivityForResult(i, 1);下面是onActivityResult(int requestCode, int resultCode, Intent data)
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { String name = ""; String phoneNumber = ""; switch (resultCode) { case RESULT_OK: switch (requestCode) { case 1: if (data == null) { return; } Uri contactData = data.getData(); if (contactData == null) { return; } Cursor cursor = managedQuery(contactData, null, null, null, null); if (cursor.moveToFirst()) { name = cursor .getString(cursor .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); String hasPhone = cursor .getString(cursor .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); String id = cursor.getString(cursor .getColumnIndex(ContactsContract.Contacts._ID)); if (hasPhone.equalsIgnoreCase("1")) { hasPhone = "true"; } else { hasPhone = "false"; } if (Boolean.parseBoolean(hasPhone)) { Cursor phones = getContentResolver() .query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + id, null, null); while (phones.moveToNext()) { phoneNumber = phones .getString(phones .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); } phones.close(); } cursor.close(); } phoneNumber = phoneNumberFormat(phoneNumber); Log.i("info", "联系人:"+ name + "--" + phoneNumberFormat(phoneNumber)); break; } break; } super.onActivityResult(requestCode, resultCode, data); }
Google官方文档是这样写的:
private void pickContact() { // Create an intent to "pick" a contact, as defined by the content provider URI Intent intent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI); startActivityForResult(intent, PICK_CONTACT_REQUEST);}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { // If the request went well (OK) and the request was PICK_CONTACT_REQUEST if (resultCode == Activity.RESULT_OK && requestCode == PICK_CONTACT_REQUEST) { // Perform a query to the contact's content provider for the contact's name Cursor cursor = getContentResolver().query(data.getData(), new String[] {Contacts.DISPLAY_NAME}, null, null, null); if (cursor.moveToFirst()) { // True if the cursor is not empty int columnIndex = cursor.getColumnIndex(Contacts.DISPLAY_NAME); String name = cursor.getString(columnIndex); // Do something with the selected contact's name... } }}
- Android调用系统选择联系人,适合更多种手机,Google官方推荐
- 比较成功的一个,Android调用系统选择联系人,适合更多种手机
- 选择手机联系人号【Android】
- Android调用系统联系人
- Android 调用联系人列表,选择联系人
- android调用系统联系人返回联系人结果,
- android调用系统联系人列表
- android调用系统联系人列表
- 调用系统应用选择联系人并返回联系人信息
- 选择怎样的系统更能适合App软件开发者?
- android各种界面跳转(调用系统联系人,通话记录,发短信,发邮件,google搜索)
- Android初级教程获取手机系统联系人信息
- Android ContentResolver读取手机系统数据<联系人>
- Android之获取手机系统的联系人
- Android UI设计-google官方推荐
- Android 选择系统联系人并读取联系人数据
- Android------读取并选择系统联系人数据
- Android学习之调用系统联系人页面返回联系人信息
- 说说Android 两种为自定义组件添加属性的使用方法和区别
- 设计模式VS三层架构
- struts.xml中result标签的/xxx.jsp与xxx.jsp的区别
- Android 启动模拟器是出现“Failed to allocate memory: 8”错误提示的原因及解决办法
- java从excle中读取数据(poi)
- Android调用系统选择联系人,适合更多种手机,Google官方推荐
- 由unix环境高级编程程序清单8-1fork()引发对缓冲的思考
- C#中使用Log4Net记录日志
- 10种排序算法总结
- 限定UITextField输入的字数
- WPS for Linux 软件包下载
- NUMBER ( precision, scale)
- “手把手教你学linux驱动开发”OK6410系列之01---模块编程
- Jfreechart 小记