Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 获得联系';s手机、工作和家庭号码在一个字符串中_Android_Android Contacts_Contactscontract - Fatal编程技术网

Android 获得联系';s手机、工作和家庭号码在一个字符串中

Android 获得联系';s手机、工作和家庭号码在一个字符串中,android,android-contacts,contactscontract,Android,Android Contacts,Contactscontract,我想获取联系人(保存在电话簿中)的手机号码、工作号码和家庭号码。我想在我的3个编辑文本视图中设置这些数字。如何做到这一点?这是我的密码 Cursor phones = getActivity().getContentResolver().query( Phone.CONTENT_URI, null, Phone.CONTACT_ID + " = " + phoneId, null, null ); while

我想获取联系人(保存在电话簿中)的手机号码、工作号码和家庭号码。我想在我的3个编辑文本视图中设置这些数字。如何做到这一点?这是我的密码

Cursor phones = getActivity().getContentResolver().query(
        Phone.CONTENT_URI, 
        null, 
        Phone.CONTACT_ID + " = " + phoneId, 
        null, 
        null
);
while (phones.moveToNext()) {
    number = phones.getString(phones.getColumnIndex(Phone.NUMBER));
    int type = phones.getInt(phones.getColumnIndex(Phone.TYPE));
    if (type == Phone.TYPE_HOME) {
        number = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DATA));
        return number;
    }
    if (type == Phone.TYPE_MOBILE) {
        number = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DATA));
        return number;
    }
    if (type == Phone.TYPE_WORK) {
        number = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DATA));
        return number;
    }
}
尝试链接以从电话簿中获取联系人详细信息,如电话号码、姓名。 并检查jon发布的答案

public List<Person> getContactList(){
    ArrayList<Person> contactList = new ArrayList<Person>();

    Uri contactUri = ContactsContract.Contacts.CONTENT_URI;
    String[] PROJECTION = new String[] {
            ContactsContract.Contacts._ID,
            ContactsContract.Contacts.DISPLAY_NAME,
            ContactsContract.Contacts.HAS_PHONE_NUMBER,
    };
    String SELECTION = ContactsContract.Contacts.HAS_PHONE_NUMBER + "='1'";
    Cursor contacts = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, PROJECTION, SELECTION, null, null);


    if (contacts.getCount() > 0)
    {
        while(contacts.moveToNext()) {
            Person aContact = new Person();
            int idFieldColumnIndex = 0;
            int nameFieldColumnIndex = 0;
            int numberFieldColumnIndex = 0;

            String contactId = contacts.getString(contacts.getColumnIndex(ContactsContract.Contacts._ID));

            nameFieldColumnIndex = contacts.getColumnIndex(PhoneLookup.DISPLAY_NAME);
            if (nameFieldColumnIndex > -1)
            {
                aContact.setName(contacts.getString(nameFieldColumnIndex));
            }

            PROJECTION = new String[] {Phone.NUMBER};
            final Cursor phone = managedQuery(Phone.CONTENT_URI, PROJECTION, Data.CONTACT_ID + "=?", new String[]{String.valueOf(contactId)}, null);
            if(phone.moveToFirst()) {
                while(!phone.isAfterLast())
                {
                    numberFieldColumnIndex = phone.getColumnIndex(Phone.NUMBER);
                    if (numberFieldColumnIndex > -1)
                    {
                        aContact.setPhoneNum(phone.getString(numberFieldColumnIndex));
                        phone.moveToNext();
                        TelephonyManager mTelephonyMgr;
                        mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
                        if (!mTelephonyMgr.getLine1Number().contains(aContact.getPhoneNum()))
                        {
                            contactList.add(aContact);  
                        }
                    }
                }
            }
            phone.close();
        }

        contacts.close();
    }

    return contactList;
}
希望这对你有帮助

public class Person {
    String myName = "";
    String myNumber = "";

    public String getName() {
        return myName;
    }

    public void setName(String name) {
        myName = name;
    }    

    public String getPhoneNum() {
        return myNumber;
    }

    public void setPhoneNum(String number) {
        myNumber = number;
    }
}