解决方案 »

  1.   

    写的好乱啊!
    你使用debug调试一下也没找出结果吗?
    将你的case   和default打印的结果换一下呗,不要写成一样的内容!
      

  2.   

    这段代码改一下:
    BroadcastReceiver receiver=new BroadcastReceiver()
    {
    @Override
    public void onReceive(Context context, Intent intent)
    {
    if (intent.getAction().equals("android.provider.Telephony.SMS_SEND"))
    {
    switch (getResultCode())
    {
    case Activity.RESULT_OK:
    Log.i(TAG, "短信发送成功!------>编号=【"+intent.getStringExtra("SEND_SMS_CODE")+"】<------>号码=【"+intent.getStringExtra("SEND_SMS_NUM")+"】<------>内容=【"+intent.getStringExtra("SEND_SMS_CONTENT")+"】");
    break;
    default:
    Log.i(TAG, "短信发送成功!------>编号=【"+intent.getStringExtra("SEND_SMS_CODE")+"】<------>号码=【"+intent.getStringExtra("SEND_SMS_NUM")+"】<------>内容=【"+intent.getStringExtra("SEND_SMS_CONTENT")+"】");
    break;
    }
    }
    }
    };
      

  3.   

    在广播接收中  的最后处理 加上  abortBroadcast(); 
      

  4.   

    好多年没有登录过论坛了,这次专门回复一下这个问题,直接的解决办法就是,在获取pendingintent的地方,第二个参数,requestCode,为每个动作设置成不同的,比如:
    PendingIntent sentIntent = PendingIntent.getBroadcast(SmsApplication.getAppContext(), (int) Calendar.getInstance().getTimeInMillis(), intent, 0);
    这样写。具体的原因,见Android文档的http://developer.android.com/reference/android/app/PendingIntent.html#getBroadcast(android.content.Context, int, android.content.Intent, int)
    处,同时建议顺带了解PendingIntent的几个Flag的意义,FLAG_ONE_SHOT, FLAG_NO_CREATE, FLAG_CANCEL_CURRENT, FLAG_UPDATE_CURRENT