Android:是否可以只显示联系人选择中的手机号码(而不显示传真、家庭或商业号码等)
是否可以过滤并允许用户仅从列表中选择联系人手机号码 当前代码:Android:是否可以只显示联系人选择中的手机号码(而不显示传真、家庭或商业号码等),android,android-intent,Android,Android Intent,是否可以过滤并允许用户仅从列表中选择联系人手机号码 当前代码: case R.id.contacts_button: Intent contactsIntent = new Intent(Intent.ACTION_GET_CONTENT); contactsIntent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE); startA
case R.id.contacts_button:
Intent contactsIntent = new Intent(Intent.ACTION_GET_CONTENT);
contactsIntent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
startActivityForResult(contactsIntent, 1);
return;
但这会显示所有类型的电话号码,包括传真、工作、家庭和我更喜欢的手机号码。这将获取包含基本联系人数据的光标,并将循环浏览联系人的电话号码,可以有多个
Uri uri = data.getData();
Cursor cursor=ctx.getContentResolver().query(uri, null, null, null, null);
while (cursor.moveToNext()) {
String contactId = cursor.getString(cursor.getColumnIndex(
ContactsContract.Contacts._ID));
String hasPhone = cursor.getString(cursor.getColumnIndex(
ContactsContract.Contacts.HAS_PHONE_NUMBER));
if (Boolean.parseBoolean(hasPhone)) {
// You know have the number so now query it like this
Cursor phones = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId,
null, null);
while (phones.moveToNext()) {
String phoneNumber = phones.getString(
phones.getColumnIndex(
ContactsContract.CommonDataKinds.Phone.NUMBER));
}
phones.close();
}
}
你有没有想过?我也在试着做同样的事。没有,对不起。你呢?