0

收到短信后如何将参数发送到另一个活动我尝试但它的显示错误

Intent 类型中的方法putExtra(String, boolean)不适用于参数(Bundle)

下面是我的代码:

public class SmsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) 
{
    //---get the SMS message passed in---
    Bundle bundle = intent.getExtras();        
    SmsMessage[] msgs = null;
    String str = "";  


    if (bundle != null)
    {
        //---retrieve the SMS message received---
        Object[] pdus = (Object[]) bundle.get("pdus");
        msgs = new SmsMessage[pdus.length];            
        for (int i=0; i<msgs.length; i++){
            msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
            str += msgs[i].getMessageBody().toString();
        }

        Intent l = new Intent(context,AgAppMenu.class);
        Bundle bundle2 = new Bundle();
        bundle.putString("msg", str);
        l.putExtra(bundle);

        l.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(l);
        Toast.makeText(context, "SucessFull Login", Toast.LENGTH_SHORT).show();
4

4 回答 4

0

您可以将字符串直接放入意图中:

l.putExtra("msg", str);

然后使用:

getIntent().getStringExtra("msg");

但是如果您想使用捆绑包,我认为您应该在这里参考bundle2

Intent l = new Intent(context,AgAppMenu.class);
        Bundle bundle2 = new Bundle();
        bundle2.putString("msg", str);

    l.putExtras(bundle2);
于 2012-09-11T08:28:53.243 回答
0

您需要使用设置捆绑包Intent.putExtras(Bundle)

于 2012-09-11T08:30:38.237 回答
0

如果您想通过捆绑使用putExtras (Bundle extras)而不是putExtra

于 2012-09-11T08:31:12.533 回答