我想检查正在进行的通话是否是国际通话。我有使用TelephonyManager.getLine1Number()获得的SIM号码以及使用TelephonyManager.getSimCountryIso()获得的SIM卡的国家代码ISO。
无论如何,我能找到拨打电话号码的国家代码吗?
答案 0 :(得分:0)
我认为telephonyManager.getSimCountryIso()
不会帮助您确定“拨打电话的国家/地区”,因为它会返回您的国家/地区的ISO。
此外,ISD代码的长度因国家而异。对于一些国家,它是1,有些国家是2,有些国家是3,有些国家是4。所以你需要从出局号码中提取/制作这些长度的4个不同的密钥,如下所示:
说出去的号码是+ 91-XXX-XXX-XXXX。 那么你将创建4个键:
现在检查此列表中是否存在以下4个键中的任何一个:ISO List。
[编辑:替代解决方案]
同样,如果您只需确定正在进行的通话是否为国际通话,那么您只需检查以下条件:
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;
}