最近我很惊讶,Android似乎没有一种标准方法来获取您自己手机的国家/地区代码(我的意思是+ 1,+ 49,+ 39而不是US,GE,IT)。 TelephonyManager
可以让您获得许多其他信息,包括电话的两个字母字符串的国家/地区代码(IN,US,IT ...),甚至您的SIM卡,但不包括拨号前缀。
在广泛研究了这个问题之后,我发现人们已经通过创建自己的country_code-prefix对应关系数据库(即{IT,+ 39} ...)(请参阅this)解决了这一问题,这听起来很疯狂(而且感觉就像在用两根棍子摩擦在一起以制造XD火焰),这意味着无数开发人员正在编写自己的数据库,以解决TelephonyManager
应该解决的问题。
我觉得有些系统应用似乎从某个地方知道此代码很奇怪。例如,即使我保存了不带前缀的电话号码,whatsapp通常也可以推断出正确的前缀。
我的联系人应用程序使用什么方法来推断正确的前缀?它有自己的私有数据库,不会与我们共享吗?是否有原因,例如一些我不知道的安全问题? Whatsapp如何做到?
对此我真的很感兴趣。也许我已经在Google上搜索了足够多的内容,并且那里有方法,但是很多人似乎正在使用上述数据库方法来解决它。
任何有助于理解这一点的人将不胜感激