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