I am trying to select contacts with only a phone number. And I follow this code
static final int PICK_CONTACT_REQUEST = 1;
But unfortunately, this shows an error: Cannot instantiate the type Uri
Actually, I have another working code that works fine, but crashes when choosing email contacts. I only need phone numbers.
Intent intentContact = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); intentContact.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivityForResult(intentContact, PICK_CONTACT);
and with onReceive() , this method is called
public void getContactInfo(Intent intent) { ContentResolver cr = getContentResolver(); cursor = cr.query(intent.getData(), null, null, null, null); while (cursor.moveToNext()) { String contactId = cursor.getString(cursor .getColumnIndex(ContactsContract.Contacts._ID)); if (Integer .parseInt(cursor.getString(cursor .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) { Cursor phones = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null); while (phones.moveToNext()) { phoneNumber = phones .getString(phones .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); } phones.close(); } else { snipp.showAlertDialog(getApplicationContext(), "No Number", "Cannot read number", false); } } cursor.close(); }
Ajmal salim
source share