2025-02-10

Android設備接收到的SMS是以pdu形式的(protocol description unit)。android.telephony.gsm.SmsMessage這個類可以儲存SMS的相關信息,我們也可以從接收到的pdu中創建新的SmsMessage實例,Toast界面組件可以以系統通知的形式來顯示接收到的SMS消息文本。

A PDU is a "protocol discription unit", which is the industry format for an SMS message. because SMSMessage reads/writes them you shouldn't need to disect them. A large message might be broken into many, which is why it is an array of objects.


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();
}
}
 
作者:轉身淚傾城

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *