2011-07-05 5 views
4

Je souhaite récupérer les numéros de téléphone du contact sélectionné en fonction du type. Je veux imprimer le type de numéro de téléphone et le numéro de téléphone associé.Obtenir le numéro de téléphone par type dans Android

Je pourrais afficher les numéros de téléphone du contact sélectionné mais pas capable de différencier le type.

est Ci-dessous l'exemple de code je:

if (Integer.parseInt(cursor.getString(
    cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) { 
    Cursor phoneCursor = getContentResolver().query(
     ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
     null, 
     ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", 
     new String[]{contactId,}, null 
    ); 
    while (phoneCursor.moveToNext()) { 
     // Do something with phones 
     System.out.println("phone numbers :" 
     + phoneCursor.getString(
      phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER) 
     ) 
     ); 
    } 
    phoneCursor.close(); 
} 

Répondre

3

comme animal de compagnie ce lien peut essayer

http://www.vtgroup.com/#ContactsContract

 // Get all phone numbers. 
     // 
     Cursor phones = cr.query(Phone.CONTENT_URI, null, 
      Phone.CONTACT_ID + " = " + contactId, null, null); 
     while (phones.moveToNext()) { 
      String number = phones.getString(phones.getColumnIndex(Phone.NUMBER)); 
      int type = phones.getInt(phones.getColumnIndex(Phone.TYPE)); 
      switch (type) { 
       case Phone.TYPE_HOME: 
        // do something with the Home number here... 
        break; 
       case Phone.TYPE_MOBILE: 
        // do something with the Mobile number here... 
        break; 
       case Phone.TYPE_WORK: 
        // do something with the Work number here... 
        break; 
       } 
     } 
     phones.close(); 
6

Juste au cas où vous ne voulez pas le faire vous-même ici est une liste dactylographiée avec tous les principaux types que permet android.

String sType = ""; 
switch (type) { 
case Phone.TYPE_HOME: 
    sType = "Home"; 
    break; 
case Phone.TYPE_MOBILE: 
    sType = "Mobile"; 
    break; 
case Phone.TYPE_WORK: 
    sType = "Work"; 
    break; 
case Phone.TYPE_FAX_HOME: 
    sType = "Home Fax"; 
    break; 
case Phone.TYPE_FAX_WORK: 
    sType = "Work Fax"; 
    break; 
case Phone.TYPE_MAIN: 
    sType = "Main"; 
    break; 
case Phone.TYPE_OTHER: 
    sType = "Other"; 
    break; 
case Phone.TYPE_CUSTOM: 
    sType = "Custom"; 
    break; 
case Phone.TYPE_PAGER: 
    sType = "Pager"; 
    break; 
} 
+0

Pour Phone.TYPE_CUSTOM, vous voudrez probablement mettre sType à la valeur de ContactsContract.CommonDataKinds.Phone.LABEL – d2vid

2

Voici la liste complète:

String sType = ""; 
    switch (type) { 
    case Phone.TYPE_HOME: 
     sType = "Home"; 
     break; 
    case Phone.TYPE_MOBILE: 
     sType = "Mobile"; 
     break; 
    case Phone.TYPE_WORK: 
     sType = "Work"; 
     break; 
    case Phone.TYPE_FAX_HOME: 
     sType = "Home Fax"; 
     break; 
    case Phone.TYPE_FAX_WORK: 
     sType = "Work Fax"; 
     break; 
    case Phone.TYPE_MAIN: 
     sType = "Main"; 
     break; 
    case Phone.TYPE_OTHER: 
     sType = "Other"; 
     break; 
    case Phone.TYPE_CUSTOM: 
     sType = "Custom"; 
     break; 
    case Phone.TYPE_PAGER: 
     sType = "Pager"; 
     break; 
    case Phone.TYPE_ASSISTANT: 
     sType = "Assistant"; 
     break; 
    case Phone.TYPE_CALLBACK: 
     sType = "Callback"; 
     break; 
    case Phone.TYPE_CAR: 
     sType = "Car"; 
     break; 
    case Phone.TYPE_COMPANY_MAIN: 
     sType = "Company Main"; 
     break; 
    case Phone.TYPE_ISDN: 
     sType = "ISDN"; 
     break; 
    case Phone.TYPE_MMS: 
     sType = "MMS"; 
     break; 
    case Phone.TYPE_OTHER_FAX: 
     sType = "Other Fax"; 
     break; 
    case Phone.TYPE_RADIO: 
     sType = "Radio"; 
     break; 
    case Phone.TYPE_TELEX: 
     sType = "Telex"; 
     break; 
    case Phone.TYPE_TTY_TDD: 
     sType = "TTY TDD"; 
     break; 
    case Phone.TYPE_WORK_MOBILE: 
     sType = "Work Mobile"; 
     break; 
    case Phone.TYPE_WORK_PAGER: 
     sType = "Work Pager"; 
     break; 
    } 
Questions connexes