android - 如何像 Whatsapp 和 Viber 一样在电话簿/联系人中添加我的应用程序连接?

标签 android contacts whatsapp connection

enter image description here

我希望将我的 Android 应用连接添加到联系人中。我将根据我需要在现有联系人中添加连接的结果检查用户是否正在使用我的应用程序。

我已经引用了很多,但它增加了一个新的联系人和一个连接。我使用的示例之一是 here

那么谁能告诉我在现有联系人中添加帐户的程序是什么?

我可以创建帐户,该帐户在手机的设置菜单中可见。

最佳答案

我也使用本教程,但您必须在 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, "sample@email.com")
                 .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();
        }
    }

关于android - 如何像 Whatsapp 和 Viber 一样在电话簿/联系人中添加我的应用程序连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31319918/

相关文章:

ios - UIActivityViewController whatsapp 共享对话框白色文本背景

MySQL WhatsApp 聊天查询

android - SampleSyncAdapter 存储密码明文?

android - PhoneLookup.CONTENT_FILTER_URI 返回两次相同的联系人

iphone - ABAddressBook - 如何查找特定联系人是否从 iPhone 通讯录中被修改或删除?

ios - UIActivityViewController - 插件 net.whatsapp.WhatsApp.ShareExtension 无效

android - Delphi Android 应用程序启动后崩溃

android - 获取具有特定空 RealmList 属性的所有对象

android - AdMob 不刷新广告