0

我目前正在开发 SmsReceiver 服务,该服务检查 SMS 发件人的地址,如果该号码与我的数据库中的一个匹配,我可以处理该消息。
但问题是,getOriginatingAddress() 方法给出的电话号码总是带有国家代码,目前是 +420,所以 getOriginatingAddress() 返回例如 +420123456789。(CZ)
解析不是问题,但我不知道的是,国家代码是从哪里来的?是来自 TelephonyManager getSimCountryIso() 还是来自我所在的当前国家或发件人来自哪里?
我可能会抓住前两个/三个数字,然后在一些预定义的国家代码地图中查找它们,但我想用电话提供的 100% 正确信息而不是我“猜测”来做到这一点。

4

1 回答 1

2

getOriginatingAddress短信本身获取完整号码(包括国家代码)。每条短信都包含收件人、发件人和短信正文(等等)的信息。

向您发送短信的设备/提供商将包括国家代码在内的完整号码(e164 格式)放入短信数据包中,并将其发送给您,您的设备不会猜测国家代码。

于 2017-07-27T07:47:43.460 回答