如何与我的应用程序同步所有手机通讯录

时间:2016-10-26 09:35:25

标签: android android-contacts

在我的应用程序中,我想显示一个选项,例如与应用程序同步联系人 它应该将所有联系人与我的应用程序同步(就像我们进入查找朋友页面的联系标签时的Facebook一样。)

因此,当所有联系人同步时,我会将联系人与服务器匹配,后者将返回我的联系人列表中的所有成员以及在服务器上注册但不在我的好友列表中的成员。

所以有人可以帮助我吗? 如何将设备联系人与我的应用程序同步?

5 个答案:

答案 0 :(得分:0)

您应该创建同步适配器,并且您应该同步并观察联系人的内容提供商。

有关详细说明,请参考以下参考资料。 http://blogs.quovantis.com/syncing-contacts-with-an-android-application-2/

答案 1 :(得分:0)

你应该检查official docs,它在那里得到了很好的解释,并不是很困难。然后,如果在实现它时仍然遇到一些问题,请回到这里并请求对代码的具体帮助。

希望它有所帮助。感谢。

答案 2 :(得分:0)

要同步联系人,您将需要从联系人列表中获取所有联系人。然后,您需要从服务器获取联系人,并比较两个地方的联系人并选择常见的联系人。

这里是用于从联系人列表中获取联系人的代码。

public void getPhoneNumbers() {
        String PHONE_NUMBER = ContactsContract.CommonDataKinds.Phone.NUMBER;
        ContentResolver cr = getContentResolver();
        Cursor cur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, new String[]{PHONE_NUMBER}, null, null, null);
        ArrayList<String> phones = new ArrayList<>();
        while (cur.moveToNext()) {
            String number = cur.getString(0);
            number = number.replaceAll(" ", "");
            if (!phones.contains(number)) phones.add(number);
        }
        cur.close();
    }

由于我不知道您的服务器端代码,因此我无法帮助您从服务器获取联系人,但是一个简单的查询就可以完成工作,并且匹配联系人需要在for循环内进行for循环。

答案 3 :(得分:-1)

如果您想将联系人与应用程序同步,则只需SyncAdapter即可。如果您不添加,则不会显示联系人。添加同步适配器时,您还需要一个身份验证器。

答案 4 :(得分:-1)

所以你的意思是你想要将本地数据与服务器数据同步?

  • 在本地数据和服务器数据之间建立连接。
  • 从服务器加载并检查本地数据./将本地数据上传到服务器,服务器检查数据并标记。

这取决于你的情况。就像关系一样。您可以使用电话号码建立两个人之间的连接。如果杰克已经注册,那么你的服务器上有杰克的电话号码和他的身份证。当Mary注册时,客户端上传mary的本地联系人。然后服务器检查数据。找到杰克的电话,这意味着杰克是玛丽的朋友。因此,当Jack或Mary加载'Frinds'时,它会显示数据。