gpt4 book ai didi

android - 在Android中通过电话号码关联电话,应用程序架构问题

转载 作者:行者123 更新时间:2023-11-29 02:14:00 27 4
gpt4 key购买 nike

我正在构建这个应用程序,它将在手机联系人列表中的用户之间建立关系。我现在所处的位置是,一旦用户安装了此应用程序,他/她将能够向联系人列表中的一个或多个人发送消息。如果联系人列表中的某个人没有安装我的应用程序,他/她将收到一 strip 有查看消息链接的纯文本消息,下载该应用程序,以便消息开始进入应用程序,而不是通过短信发送,很简单。如果他们确实安装了它,我需要发件人知道它并推送有关新消息的 C2DM 通知。我已经构建了所有应用程序功能,唯一剩下的就是这个关系 fragment ......

我可以通过了解拥有此电话号码的用户是否正在运行我的应用程序来做到这一点,然后将该号码与其他人的联系人列表进行交叉引用...但我需要处理国际号码,用户是否拥有“1 “在他们的数字前面(在美国),然后我们在欧洲和其他地方有不同形式的数字……问题越来越多。例如,我在美国,如果我在欧洲的联系人列表中有一个 friend ,我手机上的他的号码会包含一些国家代码,而他手机上存储的号码不会。我遇到了验证用户身份的问题。如果我使用保证唯一性的电话号码,则可能存在欺骗问题。我可以通过从应用程序向我的服务器发送短信来验证电话号码,它足够安全吗?

底线是:我需要该应用程序知道我的一位联系人安装了相同的应用程序,而无需发送邀请、接受和其他信息。可能是我想多了,也可能没有办法...

非常欢迎和赞赏您的想法和建议。

谢谢,祝你周末愉快:)

最佳答案

拯救的统计和启发式:

许多电话(或所有电话?- 我不确定)上的来电显示是基于号码的最后 6 或 7 位数字。虽然这不是作为完全限定号码(包括国际和区号)的普遍唯一性,但对于特定人员的联系人而言,它具有足够唯一性的可能性极高。这是一个典型的案例,理论上你可能会错,但在实践中你几乎永远不会错。实践中的错误数量是如此之少,以至于您甚至都没有意识到它们可能发生的事实......

我认为您可以使用相同的启发式方法并安全地假设在您的应用程序的早期生命周期中, 数据库中的两个人的电话号码最后 7 位数字相同的可能性很小够了没关系。

您可以轻松地监控您的数据库是否存在冲突 - 那些最后 7 位数字相同的人,通过定期查询(我会手动执行 - 比如说每周一次,而不是现在自动执行)。这样做的目的是找出您的用户群何时终于增长到足以引发此类冲突的程度。当问题离开理论领域时,您只想花时间处理问题...

一旦进入此阶段,您就可以根据用户地理位置添加进一步的启发式方法 - 对于大多数人来说,他们的大多数联系人都在同一个国家/地区和相同的区号,因此当您有疑问时,请根据原始信息做出决定用户的位置基于他们自己的电话号码。虽然没有充分的证据,但它很可能适用于大多数情况。

您可以使用的另一种启发式方法是基于社交图谱——我的联系人很可能相互联系。因此,如果我的联系人列表中的一个号码可能属于您数据库中的两个不同的人,请检查我的联系人列表中已经是您的用户的其他人在他们的联系人列表中是否也有相同的号码,并且更喜欢联系更紧密的人对我来说。

最后,对于您不确定的少数情况,您可以在安全方面犯错(即忽略该数字)或者让您的应用程序询问用户。在每个用户的基础上,这很可能在极少数情况下发生,因此不太可能让您的用户因为您窃听他们而生气。

关于android - 在Android中通过电话号码关联电话,应用程序架构问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5524351/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com