当我在 BroadcastReceiver 中收到新短信时,如何从短信中获取目标地址(以便我拥有设备的手机号码)?

编码:

TelephonyManager tMgr = (TelephonyManager) context
.getSystemService(Context.TELEPHONY_SERVICE);
String myPhoneNumber = tMgr.getLine1Number();

不会 工作,因为 TelephonyManager 中的 getLine1Number() 方法检索
数据在
存储在 SIM 卡上的“电话号码”(不是电话号码
边界
到用户的帐户) - 这通常是错误的或
不存在的,
取决于发货的网络提供商。

我也已经检查了 SMSMessage 类,但找不到任何帮助我的方法。

最佳答案

如果您对 getLine1Number() 不满意,您可以尝试以下方法:

这是一个 answer ,它显示了如何获取有关已发送 SMS 的数据,包括目标地址(我认为这是您需要的)。答案是关于发送的短信,但是如果您将 "content://sms/sent" 更改为 "content://sms/inbox" ,您应该能够访问收到的短信。我不确定收件箱短信是否也包含目标地址,但值得检查。

关于android - 传入消息的目标地址,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12895561/

10-12 01:20