【问题标题】:Android: How to know which contacts already have the app installed?Android:如何知道哪些联系人已经安装了该应用程序?
【发布时间】:2014-07-18 14:18:20
【问题描述】:

我正在使用聊天应用程序,我看到了很多关于如何添加联系人或如何搜索联系人的教程和答案。但是大多数聊天应用程序如何知道您的哪些联系人已经安装了该应用程序?谁能指点我一个教程或分享一段关于如何实现一个活动的代码,告诉你谁安装了应用程序?

非常感谢!

【问题讨论】:

  • 你的意思是喜欢whatsapp?
  • 将号码存储在数据库中然后比较用户的电话号码列表有什么问题?请记住,除非您明确告知最终用户,否则您不应该这样做。
  • 如果您想将他们的号码存储在数据库中并进行比较,您可以使用此链接寻求帮助。 parse.com/questions/…
  • 是的,比如 Whatsapp。 @Areks 在有很多用户的情况下,每次有人注册时搜索数据库中的每个联系电话号码不会是一项具有挑战性的任务吗?我只是问问。
  • 您希望像 WhatsApp 这样的应用程序如何做到这一点?当然,他们有一些后端可以处理几乎所有事情。它有一个所有用户的数据库,处理正在发送的消息,存储有关哪些用户在线和哪些用户离线等信息......一切都在后端运行。该应用程序只是一个访问它的客户端。

标签: java android android-contacts


【解决方案1】:

您需要保存一些内容来识别您的应用程序的单个用户。那个“东西”必须是独一无二的,并且可以从其他人的手机上获得。您的主要(如果不是唯一)选项几乎是电话号码或电子邮件地址,或两者兼而有之。

主要缺点是人们并不总是保留和更新电话号码列表中的电子邮件。也就是说,当然,假设他们完全存储它们。克服这个问题的一种选择可能是使用他们的电子邮件提供商提供的 API(当然,假设他们有),在您的用户成功登录后,您可以获取他们的联系人列表。这应该比依赖人们将每个电子邮件地址保存在他们的联系人列表中要准确得多。

要使用应用程序“知道”他们何时有“朋友”,您需要一个能够接收该用户的联系人列表并检查他们是否存在于您的数据库中的后端。

在您的 cmets 中,如果您拥有庞大的用户群,您会问这是否是一项昂贵的任务。当然可以。但几乎没有其他办法。当然,有一些方法可以使用设计良好的数据库来优化流程。还可以控制执行此查找的频率。

如果您在任何时候发现自己在执行此操作时遇到了可伸缩性问题,那么这很可能是您遇到的最小问题。显然,庞大的用户群需要足够的基础设施来保持运行。

【讨论】:

  • @Areks :我面临同样的问题,但根据您的逻辑,我们必须在服务器端实现负载平衡。
猜你喜欢
  • 2014-02-20
  • 1970-01-01
  • 2012-08-26
  • 2014-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-24
  • 2015-02-10
相关资源
最近更新 更多