通过Xmpp中的电子邮件(或其他信息)查找联系人

时间:2012-05-02 11:38:03

标签: android xmpp openfire smack asmack

我目前正在开发一个Android应用程序,其中XMPP用于用户之间的通信。现在我需要添加一个从Facebook或电话联系人列表导入朋友的功能 有谁知道如何实现这一点(也就是说,如果所有联系人都可用,如何找出哪些联系人正在使用我的应用程序以及他们的JID是什么)?

如果每个人都使用他们在Facebook上使用的同一封电子邮件注册他们的帐户,您可以通过他们的电子邮件而不是他们的JID添加朋友我可以看到它是如何完成的,但它似乎是一个愚蠢的假设,以及据我所知,你不能只为他们的电子邮件添加用户。

我正在使用asmackOpenfire服务器。

1 个答案:

答案 0 :(得分:1)

没有标准方法可以从电子邮件地址推断出XMPP地址。

某些服务允许将相同的地址用于电子邮件和XMPP - 例如gmail.com。检测给定域是否具有XMPP支持的一种方法是检查是否存在SRV records,更糟糕的方法是检查它是否正在侦听端口5222/5269。

尽管如此,即使给出了电子邮件地址并且知道电子邮件主机也提供XMPP,也不能保证user1@example.com与电子邮件和XMPP的用户相同。不要问我为什么不会这样,但你不能做出这样的假设。

您说您只需要检查应用程序的其他用户。您可以将自己的数据库映射帐户的电子邮件地址存储到JID。我同意你的观点,这并不理想 - 但这正是大多数服务的工作方式。包括Facebook,除了他们有比你的电子邮件地址更多的数据......)。