Android Extra在registerreceiver中始终返回null

Android Extra在registerreceiver中始终返回null,android,android-intent,broadcastreceiver,Android,Android Intent,Broadcastreceiver,在我的Android应用程序中,我希望能够在收到短信时通知某个活动,并为该活动提供发送者的号码。为了实现这个目标,我使用了一个BroadcastReceiver类来收集SMS发送者的电话号码,并以广播的方式发送它们 public class SMSReceiver extends BroadcastReceiver { final public static String SMS_BROADCAST = "myapp.BROADCAST_SMS"; final public st

在我的Android应用程序中,我希望能够在收到短信时通知某个活动,并为该活动提供发送者的号码。为了实现这个目标,我使用了一个BroadcastReceiver类来收集SMS发送者的电话号码,并以广播的方式发送它们

public class SMSReceiver extends BroadcastReceiver {
    final public static String SMS_BROADCAST = "myapp.BROADCAST_SMS";
    final public static String SMS_BROADCAST_EXTRA = "myapp.GET_SMS";

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

        Bundle extras = intent.getExtras();
        if (extras == null)
            return;
        Object[] pdus = (Object[]) extras.get("pdus");
        SmsMessage Sms[] = new SmsMessage[pdus.length];
        String numbers[] = new String[pdus.length];
        //get the sms's
        for (int i = 0; i < pdus.length; i++) {
            Sms[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
            String sender = Sms[i].getOriginatingAddress();
            numbers[i] = sender;
        }
        //pass the number array to my activity via an intent.
        Intent intent2 = new Intent(SMS_BROADCAST);
        intent2.putExtra(SMS_BROADCAST_EXTRA, numbers);
        LocalBroadcastManager.getInstance(context).sendBroadcast(intent2);
    }
}

我仍然看不出我做错了什么,但我在Android开发方面还是个新手。因此,任何帮助都将不胜感激。

您使用的是
活动
intent方法
getIntent()
而不是
onReceive
intent

更改为
getIntent()
intent

String numbers[] = intent.getStringArrayExtra(SMSReceiver.SMS_BROADCAST_EXTRA);
getIntent()
!=<代码>意图
String numbers[] = intent.getStringArrayExtra(SMSReceiver.SMS_BROADCAST_EXTRA);