如何从联系人列表中获取联系人姓名,号码和电子邮件ID?

时间:2012-04-06 08:09:57

标签: android

当我按下按钮时,我需要获取所有联系人的详细信息,但我的详细信息仅包含3个详细信息

  1. 联系人姓名

  2. 联系电话和

  3. 电子邮件ID

  4. 我正在使用此代码获取联系人姓名和所有联系人的号码,这是我点击按钮中的代码

    import android.app.Activity;
    import android.content.Intent;
    import android.database.Cursor;  
    import android.net.Uri;
    import android.os.Bundle;
    import android.provider.ContactsContract;
    import android.provider.ContactsContract.CommonDataKinds.Phone;
    import android.view.View;
    import android.widget.Button;
    
    public class GetNameNumberActivity extends Activity {
    /** Called when the activity is first created. */
    private static final int CONTACT_PICKER_RESULT = 1001; 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
           Button Btn = (Button)findViewById(R.id.getContacts);
            Btn.setOnClickListener(new View.OnClickListener() { 
    
                @Override
                public void onClick(View v) {
                    Intent i = new Intent(Intent.ACTION_PICK,
                            ContactsContract.CommonDataKinds.Phone.CONTENT_URI);
                    startActivityForResult(i, CONTACT_PICKER_RESULT);
    
                }
            });
        }
    
        protected void onActivityResult(int reqCode, int resultCode, Intent data) {
            super.onActivityResult(reqCode, resultCode, data);
            if(resultCode == RESULT_OK) {
                switch (reqCode) {
                case CONTACT_PICKER_RESULT:
                    Cursor cursor = null;
                    String number = "";
                    try {
    
                        Uri result = data.getData();
    
                        //get the id from the uri
                        String id = result.getLastPathSegment();  
    
                        //query
                        cursor = getContentResolver().query(
                                ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                                null,
                                ContactsContract.CommonDataKinds.Phone._ID + " = ? " , new String[] {id}, null);
    
    
                        int numberIdx = cursor.getColumnIndex(Phone.DATA);  
    
                        if(cursor.moveToFirst()) {
                            number = cursor.getString(numberIdx);
    
                        } else {
    
                        }
                    } catch (Exception e) {
                        //failed
                    } finally {
                        if (cursor!=null) {
                            cursor.close();
                        }
    
    
                    }
    
                }
            }
        }
    }
    

    使用此代码,我如何添加获取电子邮件地址的部分。

3 个答案:

答案 0 :(得分:4)

您的课程称为URLExample,而不是URLReader

您还没有说过如何启动它,但是您应该更改它以使用URLExample,或者您应该将您的类更改为URLReader。您还应该更可读地格式化代码......

答案 1 :(得分:0)

当我使用

System.out.println(hpCon.getHeaderFields());

打印

P3P=[CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."]

我建议你阅读链接http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657

答案 2 :(得分:0)

你的URLExample类是不公开的,还检查java文件名和文件中公共类的名称是否相同?它应该是一样的。