在Android中从SMS获取收件人号码

时间:2013-04-18 12:42:19

标签: android sms

这可能听起来很奇怪,但我想知道我在手机上收到的短信号码。我可以使用telephonyManager.getLine1Number()获取SIM卡内的移动电话号码(虽然不能保证我会收到电话号码)。但是,如果我手机中有两个SIM卡,那该怎么办?由于telephonyManager.getLine1Number()只会返回第一张/有效SIM卡的SIM卡信息。

已编辑:我也尝试获取收到任何短信时收到的所有信息,但我找不到任何有趣的内容。

那么有没有办法从收到的短信中获取收件人的号码(而不是发件人的号码)?

1 个答案:

答案 0 :(得分:-1)

试试这段代码,

public class SmsReceiver extends BroadcastReceiver {    

@Override public void onReceive(Context context, Intent intent) {

Bundle extras = intent.getExtras(); if (extras == null) return; Object[] pdus = (Object[]) extras.get("pdus"); String[] fromAddress = new String[pdus.length]; SmsMessage[] message = new SmsMessage[pdus.length]; for (int i = 0; i < pdus.length; i++) { message[i] = SmsMessage.createFromPdu((byte[])pdus[i]); fromAddress[i] = message[i].getOriginatingAddress(); // it will give the address from where SMS was originated. }

}