2015-07-09 9 views
7

enter image description hereव्हाट्सएप और Viber के रूप में फोनबुक/संपर्कों में मेरे ऐप्स कनेक्शन कैसे जोड़ें?

मैं अपने Android क्षुधा कनेक्शनसंपर्क में जोड़े जाने के लिए चाहते हैं। मैं जांचूंगा कि उपयोगकर्ता मेरे ऐप का उपयोग कर रहा है या नहीं, परिणाम के आधार पर मुझे मौजूदा संपर्कों में कनेक्शन जोड़ने की आवश्यकता है।

मैंने कई संदर्भ लिया है लेकिन यह कनेक्शन के अतिरिक्त एक नया संपर्क जोड़ता है। मैंने उपयोग किए गए नमूने में से एक है here

तो क्या कोई मुझे बता सकता है कि मौजूदा संपर्क में खाता जोड़ने की प्रक्रिया क्या है?

मैं करने में सक्षम हूँ खाते जो फोन की मेनू की स्थापना में दिख रहा है बनाएँ।

उत्तर

6

मैं भी इस ट्यूटोरियल में addContact()
में इस ट्यूटोरियल, लेकिन एक परिवर्तन अपने आप के लिए है कि है का उपयोग करें, कि आप पसंद करते हैं कर रहे हैं, तो आपको निम्न कोड बदलना होगा।

  1. addContact() सभी संपर्कों को अपने पैकेज के खाते के प्रकार है कि हटाता है, तो आप उस विशेष संपर्क को हटाने के और अधिक की स्थिति को जोड़ने के लिए है।

  2. आप जानकारी है कि पहले से ही मौजूदा संपर्क में जोड़ा गया है, जिसमें आप अपने खाते है कि संपर्क नंबर या ईमेल या नाम आदि जोड़ना चाहते हैं जोड़ने के लिए

public static void addContact(Context context, MyContact contact) { 
     ContentResolver resolver = context.getContentResolver(); 
     // add condition that you want to check 
     String where= RawContacts.ACCOUNT_TYPE + " = ? AND " +RawContacts.DISPLAY_NAME_PRIMARY+"=?"; 
     //values of that condotion 
     String[] value=new String[] { AccountGeneral.ACCOUNT_TYPE ,contact.name}; 
     resolver.delete(RawContacts.CONTENT_URI, where, value); 

     ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); 

     ops.add(ContentProviderOperation.newInsert(addCallerIsSyncAdapterParameter(RawContacts.CONTENT_URI, true)) 
       .withValue(RawContacts.ACCOUNT_NAME, AccountGeneral.ACCOUNT_NAME) 
       .withValue(RawContacts.ACCOUNT_TYPE, AccountGeneral.ACCOUNT_TYPE) 
       //.withValue(RawContacts.SOURCE_ID, 12345) 
       //.withValue(RawContacts.AGGREGATION_MODE, RawContacts.AGGREGATION_MODE_DISABLED) 
       .build()); 

     ops.add(ContentProviderOperation.newInsert(addCallerIsSyncAdapterParameter(Settings.CONTENT_URI, true)) 
       .withValue(RawContacts.ACCOUNT_NAME, AccountGeneral.ACCOUNT_NAME) 
       .withValue(RawContacts.ACCOUNT_TYPE, AccountGeneral.ACCOUNT_TYPE) 
       .withValue(Settings.UNGROUPED_VISIBLE, 1) 
       .build()); 

     ops.add(ContentProviderOperation.newInsert(addCallerIsSyncAdapterParameter(Data.CONTENT_URI, true)) 
       .withValueBackReference(Data.RAW_CONTACT_ID, 0) 
       .withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE) 
       .withValue(StructuredName.GIVEN_NAME, contact.name) 
       .withValue(StructuredName.FAMILY_NAME, contact.lastName) 
       .build()); 

     ops.add(ContentProviderOperation.newInsert(addCallerIsSyncAdapterParameter(Data.CONTENT_URI, true)) 
       .withValueBackReference(Data.RAW_CONTACT_ID, 0) 
       .withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE) 
       .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, "12342145") 

       .build()); 


     ops.add(ContentProviderOperation.newInsert(addCallerIsSyncAdapterParameter(Data.CONTENT_URI, true)) 
       .withValueBackReference(Data.RAW_CONTACT_ID, 0) 
       .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE) 
       .withValue(ContactsContract.CommonDataKinds.Email.DATA, "[email protected]") 
       .build());  


     ops.add(ContentProviderOperation.newInsert(addCallerIsSyncAdapterParameter(Data.CONTENT_URI, true)) 
       .withValueBackReference(Data.RAW_CONTACT_ID, 0) 
       .withValue(Data.MIMETYPE, MIMETYPE) 
       .withValue(Data.DATA1, 12345) 
       .withValue(Data.DATA2, "sample") 
       .withValue(Data.DATA3, "sample") 
       .build()); 
     try { 
      ContentProviderResult[] results = resolver.applyBatch(ContactsContract.AUTHORITY, ops); 
      i++; 
      if (results.length == 0) 
       ; 
     } 
     catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
संबंधित मुद्दे