2011-02-09 25 views
11

मैं सभी संपर्कों और वहां ईमेल पता की एक सूची प्राप्त करने का प्रयास कर रहा हूं।एंड्रॉइड संपर्क प्राप्त करना

वर्तमान में इस कोड का उपयोग कर रहा हूं, हालांकि मुझे बहुत सारे डुप्लिकेट नाम और ईमेल मिलते हैं। मैं जो चाहता हूं वह सिर्फ एक व्यक्ति और एक ईमेल है। क्या उनके लिए पूछताछ करते समय संपर्कों को मर्ज करने का कोई तरीका है?

मैं भी एक> 2.0 समाधान की तलाश में हूं।

private void init() { 

    ContentResolver cr = getContentResolver(); 
    Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null); 
    if (cur.getCount() > 0) { 
    while (cur.moveToNext()) { 
     String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID)); 
    String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 
     Cursor emailCur = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,null,ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?", new String[]{id},null); 
     while (emailCur.moveToNext()) { 
       String email = emailCur.getString(emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); 
       Log.e("Email",name+" "+email); 
      } 
      emailCur.close(); 
     } 

    } 
+0

इस पर एक नज़र डालें: ** (http://stackoverflow.com/questions/1721279/how-to-read-contacts-on-android-2- [कैसे एंड्रॉयड 2.0 पर संपर्कों को पढ़ने के लिए] 0) ** –

+0

इसे आजमाएं http://mobile.tutsplus.com/tutorials/android/android-essentials-using-the-contact-picker/ –

+0

वैसे मैं अंत में कोशिश कर रहा हूं कि एक से अधिक संपर्क चयनकर्ता बनाना है। तो उपयोगकर्ता ईमेल पर कई लोगों को चुन सकते हैं और चुन सकते हैं। लेकिन बीमार उस लिंक पर नज़र डालें और देखें कि क्या कोड कोड मैं सीख सकता हूं। धन्यवाद! –

उत्तर

17

नीचे दिए गए कार्य कोड को आज़माएं।

public class dddddddddd extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     // setContentView(R.layout.main); 
     readContacts(); 
    } 

    public void readContacts(){ 
     ContentResolver cr = getContentResolver(); 
     Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null); 

     if (cur.getCount() > 0) { 
      while (cur.moveToNext()) { 
       String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID)); 
       String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 
       if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) { 
        System.out.println("name : " + name + ", ID : " + id); 

        // get the phone number 
        Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null, 
              ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", 
              new String[]{id}, null); 
        while (pCur.moveToNext()) { 
          String phone = pCur.getString(
           pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
          System.out.println("phone" + phone); 
        } 
        pCur.close(); 


        // get email and type 


        Cursor emailCur = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, 
          null, 
          ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?", 
          new String[]{id}, null); 
        while (emailCur.moveToNext()) { 
         // This would allow you get several email addresses 
          // if the email addresses were stored in an array 
         String email = emailCur.getString(
             emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); 
         String emailType = emailCur.getString(emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE)); 

         int type = emailCur.getInt(emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE)); 
         String customLabel = emailCur.getString(emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.LABEL)); 
         CharSequence CustomemailType = ContactsContract.CommonDataKinds.Email.getTypeLabel(this.getResources(), type, customLabel); 

         //System.out.println("Email " + email + " Email Type : " + emailType); 
        } 
        emailCur.close(); 

        // Get note....... 
        String noteWhere = ContactsContract.Data.CONTACT_ID + " = ? AND " + 
          ContactsContract.Data.MIMETYPE + " = ?"; 
        String[] noteWhereParams = new String[]{id, 
        ContactsContract.CommonDataKinds.Note.CONTENT_ITEM_TYPE}; 

        Cursor noteCur = cr.query(ContactsContract.Data.CONTENT_URI, null, 
          noteWhere, noteWhereParams, null); 
        if (noteCur.moveToFirst()) { 
         String note = noteCur.getString(
         noteCur.getColumnIndex(ContactsContract.CommonDataKinds.Note.NOTE)); 
         System.out.println("Note " + note); 
        } 
        noteCur.close(); 

        //Get Postal Address.... 

        String addrWhere = ContactsContract.Data.CONTACT_ID 
          + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?"; 
        String[] addrWhereParams = new String[]{id, 
         ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE}; 
        Cursor addrCur = cr.query(ContactsContract.Data.CONTENT_URI, 
           null, null, null, null); 
        while(addrCur.moveToNext()) { 
         String poBox = addrCur.getString(
            addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POBOX)); 
         String street = addrCur.getString(
            addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET)); 
         String city = addrCur.getString(
            addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY)); 
         String state = addrCur.getString(
            addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION)); 
         String postalCode = addrCur.getString(
            addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE)); 
         String country = addrCur.getString(
            addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY)); 
         String type = addrCur.getString(
            addrCur.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.TYPE)); 

         // Do something with these.... 

        } 
        addrCur.close(); 

        // Get Instant Messenger......... 
        String imWhere = ContactsContract.Data.CONTACT_ID + " = ? AND " 
        + ContactsContract.Data.MIMETYPE + " = ?"; 
        String[] imWhereParams = new String[]{id, 
         ContactsContract.CommonDataKinds.Im.CONTENT_ITEM_TYPE}; 
        Cursor imCur = cr.query(ContactsContract.Data.CONTENT_URI, 
          null, imWhere, imWhereParams, null); 
        if (imCur.moveToFirst()) { 
         String imName = imCur.getString(
           imCur.getColumnIndex(ContactsContract.CommonDataKinds.Im.DATA)); 
         String imType; 
         imType = imCur.getString(
           imCur.getColumnIndex(ContactsContract.CommonDataKinds.Im.TYPE)); 
        } 
        imCur.close(); 

        // Get Organizations......... 

        String orgWhere = ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?"; 
        String[] orgWhereParams = new String[]{id, 
         ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE}; 
        Cursor orgCur = cr.query(ContactsContract.Data.CONTENT_URI, 
           null, orgWhere, orgWhereParams, null); 
        if (orgCur.moveToFirst()) { 
         String orgName = orgCur.getString(orgCur.getColumnIndex(ContactsContract.CommonDataKinds.Organization.DATA)); 
         String title = orgCur.getString(orgCur.getColumnIndex(ContactsContract.CommonDataKinds.Organization.TITLE)); 
        } 
        orgCur.close(); 
       } 
      } 
     } 
    } 
} 
+2

तस्वीर के बारे में कैसे? – ajdeguzman

संबंधित मुद्दे