`
zsnlovewl
  • 浏览: 175544 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android读取联系人信息(学习版)

阅读更多

package com.activity;

import android.app.Activity;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Contacts;
import android.provider.Contacts.People;
import android.widget.TextView;

public class Main extends Activity {
 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  TextView tv = (TextView) findViewById(R.id.TextView01);

  String columns[] = new String[] { People._ID, People.NAME,
    People.NUMBER, People.PRIMARY_EMAIL_ID,

    People.PRIMARY_ORGANIZATION_ID, People.PRIMARY_PHONE_ID,
    People.DISPLAY_NAME,

    People.IM_ACCOUNT, People.IM_HANDLE, People.PHONETIC_NAME,
    People.TYPE };

  Uri mContacts = People.CONTENT_URI;
  Cursor cur = managedQuery(mContacts, columns, // 要返回的数据字段
    null, // WHERE子句
    null, // WHERE 子句的参数
    People.NAME // Order-by子句
  );

  if (cur.moveToFirst()) {
   Cursor newcur = null;
   do {
    // 获取字段的值
    String name = cur.getString(cur.getColumnIndex(People.NAME));
    String phoneNo = cur.getString(cur
      .getColumnIndex(People.NUMBER));
    String peopleId = cur.getString(cur.getColumnIndex(People._ID));

    String[] PROJECTION = new String[] {
      Contacts.ContactMethods._ID,
      Contacts.ContactMethods.KIND,
      Contacts.ContactMethods.DATA };

    newcur = managedQuery(Contacts.ContactMethods.CONTENT_URI,
      PROJECTION, Contacts.ContactMethods.PERSON_ID + "=\'"
        + cur.getLong(cur.getColumnIndex(People._ID))
        + "\'", null, null);
    startManagingCursor(newcur);

    String email = "";

    if (newcur.moveToFirst()) {
     while (newcur.moveToNext()) {
      
      email = email+ newcur.getString(newcur.getColumnIndex(Contacts.ContactMethods.DATA));
     }
    }

    tv.setText("name = " + name + " phoneNo = " + phoneNo
      + "email = " + email);

    if (email != null && !"".equals(email)
      && email.trim().length() != 0) {

     // 此处可以取到联系人邮件
    }

   } while (cur.moveToNext());
   if (newcur != null) {
    newcur.close();// 用完得关闭吧
   }
  }

  if (cur != null)
   cur.close(); // 用完得关闭吧
 }
}

分享到:
评论

相关推荐

    Android 读取手机联系人

    读取联系人数据需要`READ_CONTACTS`权限,如下所示: ```xml <uses-permission android:name="android.permission.READ_CONTACTS" /> ``` 接下来,我们创建一个Activity来执行读取联系人的操作。在活动中,我们...

    Android实例之读取设备联系人

    总的来说,"Android实例之读取设备联系人"是一个实用的教程,它涵盖了如何在Delphi环境下利用Android API读取设备联系人信息的基本步骤和注意事项,对于开发者来说是了解和学习Android平台开发的重要实践案例。

    基于android studio的读取联系人并可点击拨打电话

    这个项目,"基于android studio的读取联系人并可点击拨打电话",显然是一个教学或示例项目,它借鉴了郭霖的畅销书《第一行代码》中的方法。下面将详细讲解如何实现这一功能。 首先,我们需要了解Android的权限管理...

    Android通过内容提供者读取联系人

    在Android系统中,内容提供者(Content Provider)是Android四大组件之一,它是应用程序间数据共享的主要...通过这个实践,开发者不仅可以学习到如何使用内容提供者读取联系人,还能理解Android数据共享的基本原理。

    Android 获取系统联系人并发送短信demo

    1. **请求权限**:在Android 6.0及以上版本,需要在运行时动态申请读取联系人数据的权限。在AndroidManifest.xml中添加`<uses-permission android:name="android.permission.READ_CONTACTS" />`,然后在运行时检查并...

    Android开发读取通讯录信息

    在Android平台上,开发读取通讯录信息是常见的功能需求,比如在社交应用或者日程管理应用中。这个过程涉及到Android的权限管理、Content Provider、CursorLoader等关键知识点。接下来,我们将详细探讨这些方面。 ...

    C# mobile手机 发送信息,读取联系人源码

    提供的"MsgSelf"文件可能是实现以上功能的源代码,可能包含了用于发送短信和读取联系人的类或方法。源码分析有助于理解实际实现细节,包括如何创建消息对象、构建SMSManager实例、请求用户权限、查询联系人库等步骤...

    Pro Android学习:联系人API

    通过这个API,开发者可以实现诸如读取联系人信息、添加新联系人、更新现有联系人、删除联系人以及管理联系人分组等一系列功能。在"Pro Android学习:联系人API"中,我们将深入探讨这些关键知识点。 首先,Android的...

    Android 系统联系人操作

    例如,读取联系人数据需添加`<uses-permission android:name="android.permission.READ_CONTACTS" />`,写入联系人数据需`<uses-permission android:name="android.permission.WRITE_CONTACTS" />`。这些权限在应用...

    Android@联系人功能

    这通常涉及到读取Android的ContactsContract数据库,筛选出用户可能需要@的联系人信息,如姓名和唯一标识。 3. **显示联系人选择界面**:创建一个Dialog或者BottomSheet,展示联系人列表。列表项应包含联系人头像、...

    android 联系人模块

    在Android平台上,联系人模块是应用开发中的一个重要组成部分,它允许用户管理他们的个人联系信息,如姓名、电话号码、电子邮件地址等。对于初学者来说,理解并实现这一功能可以帮助他们更好地掌握Android应用开发的...

    Android代码-Android手机的通讯录联系人信息.zip

    为了读取联系人数据,我们需要获取到对应的ContentResolver对象,它是Android系统中用于操作内容提供者(如联系人数据)的接口。通过ContentResolver,我们可以使用`query()`方法来执行SQL-like查询,获取联系人列表...

    Android 使用Loader 读取联系人

    在Android开发中,Loader是一种...总之,通过学习和实践这个Loader读取联系人的例子,开发者可以深入理解Loader的工作原理,以及如何有效地在Android应用中异步加载数据。这将有助于构建更高效、更响应式的用户界面。

    Android Studio 3.2 读取通话记录源码

    这个“Android Studio 3.2 读取通话记录源码”项目提供了一种方法来获取并展示用户的通话历史,包括联系人的姓名、电话号码、通话时间和通话类型。在Android Studio 3.2这个版本中,开发环境和API可能已经进行了优化...

    Android手机的通讯录联系人信息.zip

    在Android系统中,通讯录是用户管理联系人信息的核心组件,它允许用户存储、编辑和检索联系人的电话号码、电子邮件地址、家庭住址等个人信息。本资料包“Android手机的通讯录联系人信息.zip”提供了Android应用开发...

    Android 动态添加联系人

    联系人数据存储在系统级的Contact Provider中,通过Content Provider,我们能够读取和修改联系人信息。要访问Contact Provider,首先需要在AndroidManifest.xml文件中声明使用`android.provider.ContactsContract`这...

    android_实战_联系人

    在Android开发中,联系人管理是一项基础且重要的功能,它涉及到对系统中用户联系人的读取、添加、修改和删除操作。本项目实战——"android_实战_联系人",旨在帮助开发者深入理解和掌握Android的ContentProvider机制...

    Android 获取通讯录联系人信息源码

    在Android平台上,获取通讯录联系人信息是常见的需求,尤其对于开发涉及社交功能的应用来说更是必不可少。本示例源码提供了实现这一功能的方法,帮助开发者深入理解如何在Android应用中读取并操作用户通讯录数据。 ...

    Android项目-读取联系人结合listview.zip

    在这个"Android项目-读取联系人结合listview.zip"中,我们可以学习到如何实现这样一个功能。下面将详细解释涉及的关键知识点: 1. **权限申请**: 在AndroidManifest.xml文件中,我们需要添加读取联系人的权限,...

    安卓获取联系人列表

    1. 首先,你需要在AndroidManifest.xml文件中添加读取联系人权限: ```xml <uses-permission android:name="android.permission.READ_CONTACTS" /> ``` 没有这个权限,应用将无法访问用户的联系人数据。 2. 创建...

Global site tag (gtag.js) - Google Analytics