Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Hey guy finally I resolved this adding a custom field to ContactProvider and then QuickContactBadge will be link it for you.</p> <p>My code, for adding, delete a particular entry, delete all entry added by me.</p> <pre><code> private static final String IM_LABEL = "Test protocol"; private static final String LOG_TAG = "Log" /** * This method add my account under IM field at default Contact * application * * Labeled with my custom protocol. * * @param contentResolver * content resolver * @param uid * User id from android * @param account * account name */ public static void updateIMContactField(ContentResolver contentResolver, String uid, String account) { ContentValues contentValues = new ContentValues(); contentValues.put(ContactsContract.Data.RAW_CONTACT_ID, Integer.parseInt(uid)); contentValues.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Im.CONTENT_ITEM_TYPE); contentValues.put(ContactsContract.CommonDataKinds.Im.TYPE, ContactsContract.CommonDataKinds.Im.TYPE_CUSTOM); contentValues.put(ContactsContract.CommonDataKinds.Im.LABEL, IM_LABEL); contentValues.put(ContactsContract.CommonDataKinds.Im.PROTOCOL, ContactsContract.CommonDataKinds.Im.PROTOCOL_CUSTOM); contentValues.put(ContactsContract.CommonDataKinds.Im.CUSTOM_PROTOCOL, IM_LABEL); contentValues.put(ContactsContract.CommonDataKinds.Im.DATA, account); ArrayList&lt;ContentProviderOperation&gt; ops = new ArrayList&lt;ContentProviderOperation&gt;(); ops.add(ContentProviderOperation .newInsert(ContactsContract.Data.CONTENT_URI) .withValues(contentValues).build()); try { contentResolver.applyBatch(ContactsContract.AUTHORITY, ops); } catch (Exception e) { Log.d(LOG_TAG, "Can't update Contact's IM field."); } } /** * This method remove IM entry at default Contact application. * * @param contentResolver * content resolver * @param uid * User id from android * @param account * account name */ public static void removeIMContactField(ContentResolver contentResolver, String uid, String account) { ArrayList&lt;ContentProviderOperation&gt; ops = new ArrayList&lt;ContentProviderOperation&gt;(); ops.add(ContentProviderOperation .newDelete(Data.CONTENT_URI) .withSelection( ContactsContract.Data.RAW_CONTACT_ID + "=? and " + ContactsContract.Data.MIMETYPE + "=? and " + ContactsContract.CommonDataKinds.Im.DATA + " = ?", new String[] { String.valueOf(uid), ContactsContract.CommonDataKinds.Im.CONTENT_ITEM_TYPE, account }).build()); try { contentResolver.applyBatch(ContactsContract.AUTHORITY, ops); } catch (Exception e) { Log.d(LOG_TAG, "Can't delete Contact's IM field."); } } /** * This method remove IM all entries at default Contact application * * @param contentResolver * content resolver */ public static void deleteAllIMContactField(ContentResolver contentResolver) { ArrayList&lt;ContentProviderOperation&gt; ops = new ArrayList&lt;ContentProviderOperation&gt;(); ops.add(ContentProviderOperation .newDelete(Data.CONTENT_URI) .withSelection( ContactsContract.Data.MIMETYPE + "= ? and " + ContactsContract.CommonDataKinds.Im.CUSTOM_PROTOCOL + "= ?", new String[] { ContactsContract.CommonDataKinds.Im.CONTENT_ITEM_TYPE, IM_LABEL }).build()); try { contentResolver.applyBatch(ContactsContract.AUTHORITY, ops); } catch (Exception e) { Log.d(LOG_TAG, "An exception occurred when deleting all IM field of Contact."); } } </code></pre> <p>Hope some one found this useful.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload