WhatsApp如何知道我的联系人的国家/地区代码?

时间:2012-10-24 15:44:59

标签: iphone objective-c ios timezone

我在美国,电话号码如下:

  

没有国家代码:123-456-7890

     

国家代码:+1 123-456-7890

现在,根据维基百科的说法,意大利的电话号码有这种格式:

  

347 xxxxxxx(来自意大利境内)

所以这可能看起来像一个美国号码:347-123-4567

当我打开WhatsApp上的所有联系人时,它会自动添加国家/地区代码,因此如果我有美国手机123-456-7890,则会增加+1。但它怎么知道它是美国的号码呢?它可能是任何东西。

我猜测它使用我当前的区域设置或时区来确定我的位置,以及任何没有国家/地区代码的电话号码,只需添加当前用户的国家/地区代码即可。但是我在我的iPhone中更改了我的区域设置,它仍然能够猜出该号码所属的国家/地区。

知道怎么可能吗?

更新:此外,我只是尝试在我的手机处于飞行模式时添加新的电话号码,同时我的区域设置设为意大利语,而我的时区设置为意大利罗马,它仍然知道我放了一个美国号码,所以它不可能连接到服务器来获取这些信息。

2 个答案:

答案 0 :(得分:13)

WhatsApp知道你是哪个国家代码'在'因为您已使用WhatsApp验证了自己的电话号码。电话号码不具有明确的国际格式,这意味着他们不会以' +'开头。或者' 00',将根据您自己经过验证的国家/地区代码进行检查。这就是WhatsApp知道在你的情况下使用国家代码1的方式。

答案 1 :(得分:5)

假设没有明确国家/地区代码的电话号码是您所在国家/地区的本地电话号码。您自己的国家/地区由“地区格式”设置(“设置”,“常规”,“国际”)确定。

因此,当您输入(347)123-4567 之类的数字时,这被假定为美国电话号码,因为您已选择区域格式下的美国。所以WhatsApp可以假设+1,因为数字中没有明确的国家代码。

假设你在意大利有一个朋友。意大利的国家代码是+39。因此,在联系人中,您可以输入他们的号码 +39 347 1234567

意大利的用户只需输入 347 1234567 即可输入该号码。 WhatsApp会将用户的区域格式视为意大利,并知道显示+39。