Getting Number from Contacts Picker

前端 未结 5 2029
無奈伤痛
無奈伤痛 2020-12-05 05:55

I am trying to get a contacts name and phone number after a user has picked a contact from the Contact Picker. I am attempting to make my application work for SDK v3 and up

5条回答
  •  盖世英雄少女心
    2020-12-05 06:53

     switch (reqCode) {
            case (REQUEST_CODE_email):
                if (resultCode == Activity.RESULT_OK) {
                    Uri contactData = data.getData();
                    Cursor c = getContentResolver().query(contactData, null, null, null, null);
                    if (c.moveToFirst()) {
                        String contactId = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));
                        String hasNumber = c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
                        String num = "";
                        if (Integer.valueOf(hasNumber) == 1) {
                            Cursor numbers = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null);
                            while (numbers.moveToNext()) {
                                num = numbers.getString(numbers.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID));
                                //Toast.makeText(getApplicationContext(), "Number=" + num, Toast.LENGTH_LONG).show();
    
                                //asdasdasdsa
                                if(getEmail(num).isEmpty()){
                                    Toast.makeText(this, "Email Not Found In That Contact Try Another", Toast.LENGTH_SHORT).show();
                                }
                                else {
                                    edt_email_contact.setText("" + getEmail(num));
                                }                            }
                        }
                    }
                    break;
                }
             case (REQUEST_CODE_number):
                if (resultCode == Activity.RESULT_OK) {
                    Uri contactData = data.getData();
                    Cursor c = getContentResolver().query(contactData, null, null, null, null);
                    if (c.moveToFirst()) {
                        String contactId = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));
                        String hasNumber = c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
                        String num = "";
                        if (Integer.valueOf(hasNumber) == 1) {
                            Cursor numbers = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null);
                            while (numbers.moveToNext()) {
                                num = numbers.getString(numbers.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                                //Toast.makeText(getApplicationContext(), "Number=" + num, Toast.LENGTH_LONG).show();
    
                                //asdasdasdsa
    
                                edt_email_contact.setText("" + num);
                            }
                        }
                    }
                    break;
                }
    
        }
    

提交回复
热议问题