繁体   English   中英

在不扩展活动的情况下从联系人获取电子邮件和电话号码

[英]Getting emails and phone numbers from contact without extending Activity

我正在尝试从联系人那里获取 email 地址和电话号码。 我的 class 没有extend Activity ,现在我被卡住了。

我怎样才能克服这个问题?

用于获取 email 触点

public void getEmailContacts() 
    {
        try 
        {
            String name;

            ContentResolver cr = getContentResolver();
             cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null,null, null, null);

            emailIndex=0;
            if (cur.getCount() > 0) 
            {
                ArrayList<String> emailNameList=new ArrayList<String>();
                ArrayList<String> emailPhoneList=new ArrayList<String>();
                while (cur.moveToNext()) 
                {
                    String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
                    name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));

                    Cursor emails = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,null,
                            ContactsContract.CommonDataKinds.Email.CONTACT_ID+ " = " + id, null, null);
                    while (emails.moveToNext()) 
                    {
                        // This would allow you get several email addresses
                        String emailAddress = emails.getString(emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
                        Log.v(name+"==>", emailAddress);
                        if ((!emailAddress.equalsIgnoreCase(""))&&(emailAddress.contains("@"))) 
                        {   
                            emailNameList.add(name);
                            emailPhoneList.add(emailAddress);
                            emailIndex++;
                        }
                    }
                    emails.close();         
                }

用于获取电话联系人

String name;

            ContentResolver cr = getContentResolver();

            Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null,null, null, null);

            if (cur.getCount() > 0) 
            {   
                ArrayList<String> phoneNameList=new ArrayList<String>();
                ArrayList<String> PhoneList=new ArrayList<String>();

                while (cur.moveToNext()) 
                {                   
                    String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
                    name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
                    if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) 
                    {
                        phoneNameList.add(name);                        
                        Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,
                                        ContactsContract.CommonDataKinds.Phone.CONTACT_ID+ " = ?", new String[] { id }, null);

                        while (pCur.moveToNext()) 
                        {

                            PhoneList.add(pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)));

                        }
                        pCur.close();
                    }
                }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM