我的要求是找出消息收件人号码是国际号码或国内号码。
是否有任何android API或任何第三方库可用来实现相同的功能。
我想使用libphonenumber谷歌APIandroid/外部/libphonenumber,但不知道如何检查国际和非国际号码。
发布于 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列表。
编辑:替代解决方案
同样,如果您只需要确定正在进行的呼叫是否是国际呼叫,则只需检查以下条件:
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;
}发布于 2014-03-11 15:33:52
而是使用google库,该库也在Android内部使用。
http://code.google.com/p/libphonenumber/
https://stackoverflow.com/questions/22318312
复制相似问题