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

问题描述 投票:-4回答:5

在我的应用程序中,我想显示像Sync Contacts with App这样的选项。 它应该与我的应用程序同步所有联系人(就像我们进入查找朋友页面的联系人选项卡时的Facebook一样)。

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

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

android android-contacts
5个回答
0
投票

你应该创建同步适配器,在内部你应该同步并观察联系人的内容提供者。

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


0
投票

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

希望能帮助到你。谢谢。


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循环内循环。


-1
投票

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


-1
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.