Android SmsMessage国家代码
我目前正在从一个应用程序黑名单来自特定国家的短信,我已经创建了我的BroadcastReceiver类,它启动了一个服务,将电话号码与存储在数据库中的电话号码进行比较。 我的数据库包含移动国家代码,我想将收到的国家代码与数据库中的代码进行比较,但遗憾的是我没有找到任何方法从数字中检索国家代码。我认为我可以用一个简单的子字符串调用来检索它,但是我注意到并非所有的国家代码都是相同的长度,所以我不能这样做。 我想知道前缀是否是唯一的(也就是说,如果一个前缀可能是另一个前缀),如果不是,那么我可以从最大大小的前缀开始,然后是更短的前缀等等吗? 你能给我一个关于如何做到这一点的提示吗?Android SmsMessage国家代码
谢谢
电话号码规则相当复杂,有很多特殊情况。为了可靠地提取国家代码,我建议使用专门的库。有来自谷歌著名的图书馆,称为libphonenumber:
https://code.google.com/p/libphonenumber/
看看从PhoneNumberUtil extractCountryCode方法,或PhoneNumberUtil.parse它返回一个PhoneNumber对象上,您可以拨打getCountryCode。
它是开源的,所以,或者,如果你不想混淆额外的库,你可以看看它的实现提示如何自己处理国家代码。
谢谢extractCountryCode真的很有帮助,我很开心,因为我创建了一个看起来完全一样的函数。 – ex0ns
你能不只是把后缀拿出来吗?我认为所有的电话号码都是八位数字,这会使国家代码留在字符串中。 – cYrixmorten
并不是所有的数字都是高数位。 – ex0ns