`
1028826685
  • 浏览: 940544 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类

android中获取联系人相关信息

阅读更多

自己看...........


public static final int PHONES_DISPLAY_NAME_INDEX = 0;
    public static final int PHONES_NUMBER_INDEX = 1;
    public static final int PHONES_PHOTO_ID_INDEX = 2;
    public static final int PHONES_CONTACT_ID_INDEX = 3;

    public static final String[] PHONES_PROJECTION = new String[]
    {
Phone.DISPLAY_NAME,
Phone.NUMBER,
Photo.PHOTO_ID,
Phone.CONTACT_ID
    };
    public static ArrayList<MyContacts> mycontacts=null;
    //获取手机中的联系人信息
private void getPhoneContacts(Context mContext) { 

if(mycontacts==null){
mycontacts= new ArrayList<MyContacts>();
}
    ContentResolver resolver = mContext.getContentResolver(); 
     
    // 获取手机联系人 
    Cursor phoneCursor = resolver.query(Phone.CONTENT_URI,PHONES_PROJECTION, null, null, null); 
     
    if (phoneCursor != null) { 

    while (phoneCursor.moveToNext()) { 
        //得到手机号码 
        String phoneNumber = phoneCursor.getString(PHONES_NUMBER_INDEX); 
        //当手机号码为空的或者为空字段跳过当前循环 
        if (TextUtils.isEmpty(phoneNumber)) 
            continue; 
        
        //得到联系人名称 
        String contactName = phoneCursor.getString(PHONES_DISPLAY_NAME_INDEX); 
        
        //得到联系人ID 
        Long contactid = phoneCursor.getLong(PHONES_CONTACT_ID_INDEX); 
     
        //得到联系人头像ID 
        Long photoid = phoneCursor.getLong(PHONES_PHOTO_ID_INDEX); 
        
        //得到联系人头像Bitamp 
        Bitmap contactPhoto = null; 
     
        //photoid 大于0 表示联系人有头像如果没有给此人设置头像则给他一个默认的 
        if(photoid > 0 ) { 
            Uri uri =ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI,contactid); 
            InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(resolver, uri); 
            contactPhoto = BitmapFactory.decodeStream(input); 
        }else { 
            contactPhoto = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.contact); 
        } 
        
        MyContacts myContact=new MyContacts(contactName, phoneNumber, contactPhoto);
       
        mycontacts.add(myContact);
     } 
        phoneCursor.close(); 
    }
   
 
  } 
/* 获得手机sim卡联系人信息
sim卡和手机本人 获取的方式类似 只是url有点不一样 ,须要注意的一点是 sim卡  是没有联系人头像的。 */
private void getSIMContacts(Context mContext) { 
if(mycontacts==null){
mycontacts= new ArrayList<MyContacts>();
}
    ContentResolver resolver = mContext.getContentResolver(); 
    // 获取Sims卡联系人 
    Uri uri = Uri.parse("content://icc/adn"); 
    Cursor phoneCursor = resolver.query(uri, PHONES_PROJECTION, null, null, 
        null); 
    Bitmap contactPhoto = null; 
    if (phoneCursor != null) { 
        while (phoneCursor.moveToNext()) { 
       
     
        // 得到手机号码 
        String phoneNumber = phoneCursor.getString(PHONES_NUMBER_INDEX); 
        // 当手机号码为空的或者为空字段 跳过当前循环 
        if (TextUtils.isEmpty(phoneNumber)) 
            continue; 
        // 得到联系人名称 
        String contactName = phoneCursor 
            .getString(PHONES_DISPLAY_NAME_INDEX); 
     
        //Sim卡中没有联系人头像  加載默認圖片
        contactPhoto = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.contact);
        MyContacts myContact=new MyContacts(contactName, phoneNumber, contactPhoto);
        mycontacts.add(myContact);
       } 
        phoneCursor.close(); 
    } 
分享到:
评论

相关推荐

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

    // 已有权限,执行获取联系人信息的代码 } else { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_CONTACTS}, PERMISSIONS_REQUEST_READ_CONTACTS); } ``` 6. **处理回调**...

    Android获取联系人列表Demo

    在这个"Android获取联系人列表Demo"中,我们将深入探讨如何实现这一功能。 首先,我们需要在AndroidManifest.xml文件中添加必要的权限,因为访问联系人数据是受保护的隐私操作。以下是要添加的权限: ```xml ...

    Android获取联系人

    以下是对"Android获取联系人"这一主题的详细讲解。 首先,Android系统中的联系人数据存储在SQLite数据库中,开发者可以通过ContentProvider接口访问这些数据。ContactsContract类是Android提供的一个内容提供者...

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

    首先,ContentResolver是Android系统提供的接口,它负责与ContentProvider进行交互,而ContactsContract是Android提供的一个类,包含了所有与联系人相关的常量和URI。 1. **请求权限**:在Android 6.0及以上版本,...

    android获取联系人生日信息

    以上就是Android获取联系人生日信息的基本步骤。在实际应用中,你可能还需要考虑到权限问题,因为自Android 6.0(API级别23)开始,用户需要在运行时授予读取联系人的权限。此外,为了提高性能,你还可以考虑使用...

    Android 简单的获取联系人的信息

    在Android平台上,获取联系人信息是一项常见的任务,尤其在开发涉及个人信息管理的应用时。这个过程涉及到权限管理、ContentResolver的使用以及对ContactsContract类的理解。本文将深入探讨如何实现"Android简单的...

    Android通讯录管理(获取联系人、通话记录、短信消息)

    这篇教程将深入探讨如何在Android应用中获取联系人信息、通话记录以及短信消息。首先,我们来了解一下基本概念。 1. **获取联系人信息**: Android提供了一套完整的API来访问和操作联系人数据。主要涉及`...

    android 联系人 SIM卡 最近联系人 通讯录 获取源代码

    在Android开发中,获取联系人、SIM卡信息以及最近联系人列表是常见的需求。下面将详细解释这些概念和实现方式。 一、Android联系人管理 Android系统提供了ContentProvider接口来访问和操作联系人数据。主要涉及到...

    Android Studio 获取手机联系人项目main文件

    对于获取联系人,我们需要`READ_CONTACTS`权限,如果要进行修改或删除操作,则还需要`WRITE_CONTACTS`权限: ```xml &lt;uses-permission android:name="android.permission.READ_CONTACTS" /&gt; &lt;uses-permission ...

    Android获取手机联系人信息

    Android如何获取手机联系人信息,本文为大家揭晓。 获取手机联系人信息步骤: 1、获取 ContentResolver ContentResolver resolver = getContentResolver(); 2、resolver.query(*)查询信息 查询手机联系人的URI...

    android调用通讯录获取联系人Demo

    在Android平台上,调用通讯录获取联系人是常见的功能,尤其在社交应用或者需要权限管理的应用中尤为关键。本Demo "android调用通讯录获取联系人Demo" 提供了一个实例,帮助开发者理解如何实现这一功能,允许用户自由...

    android 获取手机联系人

    在这个类中,你可以定义一个方法来请求联系人权限,并实现获取联系人的逻辑。以下是一个基本的示例: ```java public class ContactManager { public static final int REQUEST_READ_CONTACTS = 100; public ...

    查看并获取联系人电话

    在Android和iOS等移动操作系统中,查看和获取联系人电话是一项常见的功能,广泛应用于社交应用、通讯工具和其他需要用户授权访问联系人信息的软件中。本文将深入探讨如何在这些平台上实现这一功能。 首先,我们从...

    Android软件开发之获取通讯录联系人信息

    例如,要获取联系人的电子邮件地址,可以使用`ContactsContract.CommonDataKinds.Email`对应的URI和列名: ```java Cursor emailCursor = resolver.query( ContactsContract.CommonDataKinds.Email.CONTENT_URI, ...

    Android 读取联系人信息

    在Android平台上,获取联系人信息是一项常见的功能,它允许应用程序访问用户的电话簿,展示联系人的姓名、电话号码、电子邮件地址等。本节将详细讲解如何在Android应用中读取联系人信息,以及与之相关的`firstname`...

    Android获取手机通讯录、sim卡联系人及调用拨号界面方法

    在Android平台上,获取手机通讯录和SIM卡联系人,以及调用拨号界面是常见的功能需求,这通常涉及到用户信息的读取和系统的交互。以下将详细解释如何实现这些功能。 首先,要获取手机通讯录的联系人信息,我们需要...

    获取联系人信息进行查看

    总之,Android中获取联系人信息涉及到对`ContactsContract`内容提供者的熟练使用,包括构建查询Uri、解析Cursor以及处理数据。通过这些步骤,我们可以高效地根据电话号码获取到联系人的头像、姓名和其他相关信息。在...

    Androidの联系人群组Group操作

    通过查询`ContactsContract.Data`表,结合`ContactsContract.CommonDataKinds.GroupMembership`的数据类型,可以获取联系人所属的所有群组。 8. **权限管理** 记住,进行任何联系人操作都需要在AndroidManifest....

Global site tag (gtag.js) - Google Analytics