0

フィルターで除外して、ユーザーがリストから連絡先の携帯電話番号のみを選択できるようにすることはできますか?

現在のコード:

    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;

しかし、これには、ファックス、職場、自宅など、すべての種類の電話番号が表示されます。携帯電話だけを表示したいと思います。

4

1 に答える 1

0

これにより、基本連絡先データを保持しているカーソルが取得され、連絡先が持つ電話番号がループされ、複数の電話番号を持つことができます。

    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(); 
   } 
 }
于 2013-10-30T05:02:51.727 に答える