¿Cómo puedo agregar mi conexión de aplicaciones en Agenda / Contactos como Whatsapp y Viber?
Quiero que mi conexión de aplicaciones de Android se agregue en contacto . Comprobaré si el usuario está usando mi aplicación o no, basado en el resultado que necesito para agregar la conexión en los contactos existentes .
- ¿Cómo compartir el texto de WhatsApp desde mi aplicación?
- WhatsApp envía un mensaje a un grupo en particular a través de la intención
- ¿Cómo detecta la aplicación whatsapp del usuario el cambio en la imagen de perfil de su contacto?
- Transición de elementos compartidos de Android: transformación de un ImageView de un círculo a un rectángulo y viceversa
- agregar / sincronizar contactos automáticamente
He tomado muchas referencias pero añade un nuevo contacto con la adición de una conexión. Una de las muestras que he usado está aquí
¿Así que alguien puede decirme cuál es el procedimiento para agregar cuenta en el contacto existente?
Puedo crear la cuenta que es visible en el menú del ajuste del teléfono.
- ¿Cómo recuperar imágenes de perfil de Whatsapp?
- Despliegue de diseño en una barra de herramientas con imágenes y texto e iconos en Android
- ¿Cómo obtener los contactos de un grupo de WhatsApp en Android?
- ¿Cómo puedo abrir la actividad de conversación de WhatsApp usando datos de contacto?
- ¿Cómo hacer la barra de progreso personalizada con la imagen del indicador, como whatsapp?
- Compartir imagen y texto a través de whatsapp
- Enviar el mensaje Whatsapp a un contacto específico
- ¿Puedo crear un complemento para whatsapp
También uso este tutorial pero un cambio que tienes que hacer es en addContact()
En este tutorial, que prefieres, debes cambiar el siguiente código.
-
addContact()
elimina todos los contactos que tienen el tipo de cuenta de su paquete, por lo que tiene que agregar más condiciones de eliminación de ese contacto en particular. -
Usted tiene que agregar los detalles que ya ha agregado en el contacto existente en el que desea agregar su cuenta que es el número de contacto o correo electrónico o nombre, etc
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(); } }