Android 从联系人处获取电话号码

Android 从联系人处获取电话号码,android,string,contacts,Android,String,Contacts,我有一个按钮,我点击,并显示联系人。它显示选定联系人的姓名,但不显示其号码 @Override public void onClick(View arg0) { // TODO Auto-generated method stub Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONT

我有一个按钮,我点击,并显示联系人。它显示选定联系人的姓名,但不显示其号码

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub

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

    @Override
    public void onActivityResult(int reqCode, int resultCode, Intent data) {
        super.onActivityResult(reqCode, resultCode, data);
        if (resultCode == Activity.RESULT_OK) {
            Uri contactData = data.getData();
            Cursor c = managedQuery(contactData, null, null, null, null);
            if (c.moveToFirst()) {
                String name = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
                contactName.setText(name);

                Something here !!!!!!!!!!!!!!!!!!!!!!!!

                contactName.setText(number);
            }
        }
    }
}
名字是字符串,但我怎样才能得到电话号码

@Override
public void onActivityResult(int reqCode, int resultCode, Intent data) {
    super.onActivityResult(reqCode, resultCode, data);
    if (resultCode == Activity.RESULT_OK) {
        Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null);
        while (phones.moveToNext())
        {
            String name=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
            String number=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

            contactName.setText(name);
            contactNumber.setText(number);
        }
    }
使用此代码可以打开我的联系人。我触摸一个,但它总是显示我添加到联系人中的姓氏和号码

例如,我触摸阿德里安(2222),它显示保罗(33333333),他是我最后添加的人


我该怎么办?

String phoneNumber=c.getString(c.getColumnIndex(contacts contract.commonDataTypes.Phone.NUMBER))

您在manifest.xml.permissions中提到的写入联系人、读取联系人和Internet的所有权限是什么09-03 01:29:57.884 18258-18258/com.example.gpshelp E/CursorWindow:未能从包含1行47列的CursorWindow中读取第0行第1列。09-03 01:29:57.886 18258-18258/com.example.gpshelp W/dalvikvm:threadid=1:线程以未捕获异常退出(组=0x40e391f8)09-03 01:29:57.919 18258-18258/com.example.gpshelp E/AndroidRuntime:FATAL exception:main不确定如何生成光标。我试过像这样的游标cntcts=getActivity().getContentResolver().query(ContactsContract.CommonDataTypes.Phone.CONTENT\u URI,null,null,null);类似于你的问题我已经解决了,我检查了stackoverflow中的很多线程,发现了一个对我有帮助的线程。无论如何,谢谢你。