3

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

编码:

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

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

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

4

1 回答 1

2

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

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

于 2012-10-15T12:39:43.863 回答