如何从android获得联系

时间:2012-12-11 17:21:58

标签: android android-intent

  

可能重复:
  get contact info from android contact picker

你好,我试图从我的应用程序中的Android联系人列表中获取联系人号码是我已经给出一个按钮onclick的代码,我正在调用意图填充联系人,我也在menifest文件中添加了read_contact permision,但我我得到结果代码值-1 .... wat是错误的???任何人都可以帮助我...

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.friendinvite);

    Button btnFriend=(Button)findViewById(R.id.btnFriend);
    btnFriend.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            Intent contact = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
            startActivityForResult(contact, 1);        


        }
    });

}
    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (data != null) {


                ContentResolver cr = getContentResolver();

                Uri contactData = data.getData();

                Cursor c = managedQuery(contactData,null,null,null,null);
                String id=null;
                String name=null;
                String phone=null;

                if(c.moveToFirst()){
                        id = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));
                        name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));

                    if (Integer.parseInt(c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
                            Cursor pCur = cr.query(Phone.CONTENT_URI,null,Phone.CONTACT_ID +" = ?", new String[]{id}, null);

                      while(pCur.moveToNext()){
                          phone = c.getString(c.getColumnIndex(Phone.NUMBER));

                      }
                  }


                }
        }
    }

1 个答案:

答案 0 :(得分:1)

你看过Contacts Provider Api了吗?似乎他们没有像你那样做。我建议从Uri信息开始。

编辑:似乎该活动使用两种方式来呼叫startactivityforresult()。也许在阅读Activity guide之后,您将获得更好的洞察力。