android 收短信中pdus 是什么东东?

解决方案 »

  1.   

    最近刚刚接触android,java语言也是刚刚开始学,所以有一些很初级的问题不太明白想请大家帮帮忙,以下这段代码是《android应用开发揭秘》中的一个接收短信的实例,我不明白的地方是Object messages[] = (Object[]) bundle.get("pdus");
    这段代码中(Object[]) bundle.get("pdus");是什么意思,bundle.get能够从pdus字符串中get到什么信息?在这段代码中(Object[]) bundle.get();中的参数貌似必须是pdus字符串,这是为什么?在网上找了很多相关的信息也没找到我想要的答案,只找到下面这段解释的还算详细 
    Android设备接收到的SMS是以pdu形式的(protocol description unit)。android.telephony.gsm.SmsMessage这个类可以储存SMS的相关信息,我们也可以从接收到的pdu中创建新的SmsMessage实例,Toast界面组件可以以系统通知的形式来显示接收到的SMS消息文本。但是还是没有揭开我的疑问,所以才想麻烦大家的。public class SMSReceiver extends BroadcastReceiver
    {
    /*当收到短信时,就会触发此方法*/
    public void onReceive(Context context, Intent intent)
    {
      Bundle bundle = intent.getExtras();
    Object messages[] = (Object[]) bundle.get("pdus");
      SmsMessage smsMessage[] = new SmsMessage[messages.length];
      for (int n = 0; n < messages.length; n++)
      {
       smsMessage[n] = SmsMessage.createFromPdu((byte[]) messages[n]);
      }
      //产生一个Toast
      Toast toast = Toast.makeText(context, "短信内容: " + smsMessage[0].getMessageBody(), Toast.LENGTH_LONG);
      //设置toast显示的位置
      //toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 200);
      //显示该Toast
      toast.show();
    }
    }
      

  2.   

    你再到其他地方找找 android 的资料 有相关的介绍的吧