查询的Andr​​oid取得联系ACCOUNT_TYPE和ACCOUNT_NAME [英] Query Android contact to get ACCOUNT_TYPE and ACCOUNT_NAME

查看:892
本文介绍了查询的Andr​​oid取得联系ACCOUNT_TYPE和ACCOUNT_NAME的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我能获得联系人名单和他们喜欢的基本信息:姓名。电话,电子邮件,IMS,笔记,组织用于备份使用 ContactsContract.Contacts.CONTENT_URI 连络人及其他特定的URI不同的信息类型的列表。

我需要,以全面恢复所有信息两个字段:


  

ContactsContract.RawContacts.ACCOUNT_TYPE


  
  

ContactsContract.RawContacts.ACCOUNT_NAME


任何人都可以指导我如何获得这一信息,从ContactsContract.Contacts.CONTENT_URI知道联系人标识?

感谢您


解决方案

 公共ContactAccount getContactAccount(长ID,ContentResolver的ContentResolver的){        ContactAccount账户= NULL;        光标光标= NULL;
        尝试{             光标= contentResolver.query(ContactsContract.RawContacts.CONTENT_URI,
                     新的String [] {ContactsContract.RawContacts.ACCOUNT_NAME,ContactsContract.RawContacts.ACCOUNT_TYPE},
                     ContactsContract.RawContacts.CONTACT_ID +=?,
                     新的String [] {将String.valueOf(ID)},
                     空值);            如果(光标=空&放大器;!&放大器; cursor.getCount()大于0)
            {
                cursor.moveToFirst();
                账户=新ContactAccount();
                account.setAccountName(cursor.getString(cursor.getColumnIndex(ContactsContract.RawContacts.ACCOUNT_NAME)));
                account.setAccountType(cursor.getString(cursor.getColumnIndex(ContactsContract.RawContacts.ACCOUNT_TYPE)));
                cursor.close();
            }
        }赶上(例外五){
            Utils.log(this.getClass()的getName(),e.​​getMessage());
        } {最后
          cursor.close();
        }        返回(账户);
    }

I am able to obtain a list of contacts and their basic information like: name. phones, emails, ims, notes, organizations for backup purposes by using ContactsContract.Contacts.CONTENT_URI for a list of Contacts and other specific URIs for different information type.

I need, in order to fully restore all the information two more fields:

ContactsContract.RawContacts.ACCOUNT_TYPE

ContactsContract.RawContacts.ACCOUNT_NAME

Can anyone guide me how to obtain this info, knowing the Contact Id from ContactsContract.Contacts.CONTENT_URI ?

Thank you

解决方案

public ContactAccount getContactAccount(Long id,ContentResolver contentResolver) {

        ContactAccount account = null;

        Cursor cursor = null;
        try {

             cursor = contentResolver.query(ContactsContract.RawContacts.CONTENT_URI,
                     new String[]{ContactsContract.RawContacts.ACCOUNT_NAME, ContactsContract.RawContacts.ACCOUNT_TYPE},
                     ContactsContract.RawContacts.CONTACT_ID +"=?",
                     new String[]{String.valueOf(id)},
                     null);

            if (cursor != null && cursor.getCount() >0)
            {
                cursor.moveToFirst();
                account = new ContactAccount();
                account.setAccountName(cursor.getString(cursor.getColumnIndex(ContactsContract.RawContacts.ACCOUNT_NAME)));
                account.setAccountType(cursor.getString(cursor.getColumnIndex(ContactsContract.RawContacts.ACCOUNT_TYPE)));
                cursor.close();
            }
        } catch (Exception e) {
            Utils.log(this.getClass().getName(), e.getMessage()); 
        } finally{
          cursor.close();
        }

        return(account);
    }

这篇关于查询的Andr​​oid取得联系ACCOUNT_TYPE和ACCOUNT_NAME的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆