SHARE
TWEET

Untitled

a guest Feb 15th, 2019 79 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /**
  2.      * Account type id
  3.      */
  4.     public static final String ACCOUNT_TYPE = "com.test.app";
  5.  
  6.     /**
  7.      * Account name
  8.      */
  9.     public static final String ACCOUNT_NAME = "Test";
  10.  
  11. public static void addContact(Context context, User contact) {
  12.         ContentResolver resolver = context.getContentResolver();
  13.         resolver.delete(RawContacts.CONTENT_URI, RawContacts.ACCOUNT_TYPE
  14.                 + " = ?", new String[] { AccountConstants.ACCOUNT_TYPE });
  15.  
  16.         ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
  17.  
  18.         ops.add(ContentProviderOperation
  19.                 .newInsert(
  20.                         addCallerIsSyncAdapterParameter(
  21.                                 RawContacts.CONTENT_URI, true))
  22.                 .withValue(RawContacts.ACCOUNT_NAME,
  23.                         AccountConstants.ACCOUNT_NAME)
  24.                 .withValue(RawContacts.ACCOUNT_TYPE,
  25.                         AccountConstants.ACCOUNT_TYPE)
  26.                 // .withValue(RawContacts.SOURCE_ID, 12345)
  27.                 // .withValue(RawContacts.AGGREGATION_MODE,
  28.                 // RawContacts.AGGREGATION_MODE_DISABLED)
  29.                 .build());
  30.  
  31.         ops.add(ContentProviderOperation
  32.                 .newInsert(
  33.                         addCallerIsSyncAdapterParameter(Settings.CONTENT_URI,
  34.                                 true))
  35.                 .withValue(RawContacts.ACCOUNT_NAME,
  36.                         AccountConstants.ACCOUNT_NAME)
  37.                 .withValue(RawContacts.ACCOUNT_TYPE,
  38.                         AccountConstants.ACCOUNT_TYPE)
  39.                 .withValue(Settings.UNGROUPED_VISIBLE, 1).build());
  40.  
  41.         ops.add(ContentProviderOperation
  42.                 .newInsert(
  43.                         addCallerIsSyncAdapterParameter(Data.CONTENT_URI, true))
  44.                 .withValueBackReference(Data.RAW_CONTACT_ID, 0)
  45.                 .withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
  46.                 .withValue(StructuredName.GIVEN_NAME, contact.getFullname())
  47.                 .withValue(StructuredName.FAMILY_NAME, contact.getFullname())
  48.                 .build());
  49.  
  50.         ops.add(ContentProviderOperation
  51.                 .newInsert(
  52.                         addCallerIsSyncAdapterParameter(Data.CONTENT_URI, true))
  53.                 .withValueBackReference(Data.RAW_CONTACT_ID, 0)
  54.                 .withValue(
  55.                         ContactsContract.Data.MIMETYPE,
  56.                         ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
  57.                 .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER,
  58.                         contact.getPhoneNumber()).build());
  59.  
  60.         ops.add(ContentProviderOperation
  61.                 .newInsert(
  62.                         addCallerIsSyncAdapterParameter(Data.CONTENT_URI, true))
  63.                 .withValueBackReference(Data.RAW_CONTACT_ID, 0)
  64.                 .withValue(
  65.                         ContactsContract.Data.MIMETYPE,
  66.                         ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE)
  67.                 .withValue(ContactsContract.CommonDataKinds.Email.DATA,
  68.                         contact.getEmail()).build());
  69.  
  70.         ops.add(ContentProviderOperation
  71.                 .newInsert(
  72.                         addCallerIsSyncAdapterParameter(Data.CONTENT_URI, true))
  73.                 .withValueBackReference(Data.RAW_CONTACT_ID, 0)
  74.                 .withValue(Data.MIMETYPE, MIMETYPE)
  75.                 .withValue(Data.DATA1, contact.getFullname())
  76.                 .withValue(Data.DATA2, contact.getEmail())
  77.                 .withValue(Data.DATA3, contact.getHomeAddress()).build());
  78.         try {
  79.             ContentProviderResult[] results = resolver.applyBatch(
  80.                     ContactsContract.AUTHORITY, ops);
  81.             if (results.length == 0)
  82.                 AppLog.d(TAG, "Failed to add.");
  83.         } catch (Exception e) {
  84.             AppLog.e(TAG, e.getMessage(), e);
  85.         }
  86.     }
  87.    
  88. <ContactsSource xmlns:android="http://schemas.android.com/apk/res/android" >
  89.  
  90.     <ContactsDataKind
  91.         android:detailColumn="data2"
  92.         android:detailSocialSummary="true"
  93.         android:icon="@drawable/ic_launcher"
  94.         android:mimeType="vnd.android.cursor.item/com.test.app"
  95.         android:summaryColumn="data3" />
  96.  
  97. </ContactsSource>
  98.    
  99. // as displayName pass the retrieved   ContactsContract.Contacts.DISPLAY_NAME
  100.  
  101. @Override
  102. public void addContact(@Nonnull final String displayName, @Nonnull final String phone) {
  103.  
  104.     final ContentResolver resolver = context.getContentResolver();
  105.  
  106.         final ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
  107.  
  108.         ops.add(ContentProviderOperation
  109.                 .newInsert(addCallerIsSyncAdapterParameter(ContactsContract.RawContacts.CONTENT_URI, true))
  110.                 .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, ACCOUNT_NAME)
  111.                 .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, ACCOUNT_TYPE)
  112.                 .withValue(ContactsContract.RawContacts.AGGREGATION_MODE,
  113.                         ContactsContract.RawContacts.AGGREGATION_MODE_DEFAULT)
  114.                 .build());
  115.  
  116.         ops.add(ContentProviderOperation
  117.                 .newInsert(addCallerIsSyncAdapterParameter(ContactsContract.Data.CONTENT_URI, true))
  118.                 .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
  119.                 .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
  120.                 .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, phone)
  121.                 .build());
  122.  
  123.         ops.add(ContentProviderOperation
  124.                     .newInsert(addCallerIsSyncAdapterParameter(ContactsContract.Data.CONTENT_URI, true))
  125.                     .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
  126.                     .withValue(ContactsContract.Data.MIMETYPE,
  127.                             ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
  128.                     .withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, displayName)
  129.                     .build());
  130.  
  131.         ops.add(ContentProviderOperation
  132.                 .newInsert(addCallerIsSyncAdapterParameter(ContactsContract.Data.CONTENT_URI, true))
  133.                 .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
  134.                 .withValue(ContactsContract.Data.MIMETYPE, YOUR_MIMETYPE)
  135.                 .withValue(ContactsContract.Data.DATA1, 12345)
  136.                 .withValue(ContactsContract.Data.DATA2, "user")
  137.                 .withValue(ContactsContract.Data.DATA3, "action")
  138.                 .build());
  139.  
  140.         try {
  141.             resolver.applyBatch(ContactsContract.AUTHORITY, ops);
  142.         } catch (Exception e) {
  143.             e.printStackTrace();
  144.         }
  145.  
  146.     }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top