首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在android中检查给定的电话号码是国际号码还是非国际号码?

如何在android中检查给定的电话号码是国际号码还是非国际号码?
EN

Stack Overflow用户
提问于 2014-03-11 14:43:44
回答 2查看 3.8K关注 0票数 0

我的要求是找出消息收件人号码是国际号码或国内号码。

是否有任何android API或任何第三方库可用来实现相同的功能。

我想使用libphonenumber谷歌APIandroid/外部/libphonenumber,但不知道如何检查国际和非国际号码。

EN

回答 2

Stack Overflow用户

发布于 2014-03-11 14:50:51

我认为telephonyManager.getSimCountryIso()不会帮助您确定调用是在哪个国家进行的,因为它会返回您所在国家的国际标准化组织。

此外,ISD代码的长度因国家/地区而异。有些国家是1,有些是2,有些是3,有些是4。因此,您需要从传出号码中提取/生成4个不同长度的密钥,如下所示:

假设出局号码是+91-XXX-XXX-XXXX。然后创建4个关键点,如下所示:

9 (1位数字密钥)

91 (2位数字密钥)

91X (3位数字密钥)

91XX (4位数字密钥)

现在检查这4个关键字中是否有任何一个存在于此列表中: ISO列表。

编辑:替代解决方案

同样,如果您只需要确定正在进行的呼叫是否是国际呼叫,则只需检查以下条件:

代码语言:javascript
复制
if(outgoing-number `startswith` "00" || outgoing-number does not `startswith` your "country's-    ISD-code") {
    //it's an international call;
} else {
    //it's a domestic call;
}
票数 2
EN

Stack Overflow用户

发布于 2014-03-11 15:33:52

而是使用google库,该库也在Android内部使用。

http://code.google.com/p/libphonenumber/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22318312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档