ANDROID APP
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
196 บทที่ 8 เครือข่าย<br />
ขั้นตอนข้างต้นนี้เป็นลำดับของการส่งข้อความ SMS แต่อย่างไรก็ตาม เราจะต้องกำหนดค่า<br />
เพิ่มเติมอีก 3 อย่าง เพื่อให้การทำงานที่สมบูรณ์ ดังนี้<br />
m ค่าของศูนย์บริการข้อความ SMS ซึ่งถ้ากำหนดค่านี้เป็น null ระบบจะใช้ค่าที่กำหนดมา<br />
จากผู้ให้บริการเครือข่ายโทรศัพท์<br />
m ค่าของ PendingIntent เพื่อตรวจสอบสถานะการส่งข้อความ<br />
m ค่าของ PendingIntent เพื่อตรวจสอบสถานะการรับข้อความ<br />
การใช้งานค่า PendingIntent เพื่อตรวจสอบสถานะของข้อความที่รับ-ส่งนั้น ใช้คำสั่งดังนี้<br />
String SENT_SMS_FLAG = “SENT_SMS”;<br />
String DELIVER_SMS_FLAG = “DELIVER_SMS”;<br />
Intent sentIn = new Intent(SENT_SMS_FLAG);<br />
PendingIntent sentPIn = PendingIntent.getBroadcast(this,0,sentIn,0);<br />
Intent deliverIn = new Intent(SENT_SMS_FLAG);<br />
PendingIntent deliverPIn<br />
= PendingIntent.getBroadcast(this,0,deliverIn,0);<br />
จากนั้น BroadcastReceiver จำเป็นต้องถูกรีจีสเตอร์ให้กับ PendingIntent แต่ละตัวเพื่อ<br />
ให้ได้ผลลัพธ์ดังนี้<br />
BroadcastReceiver sentReceiver = new BroadcastReceiver(){<br />
@Override public void onReceive(Context c, Intent in) {<br />
switch(getResultCode()){<br />
case Activity.RESULT_OK:<br />
//sent SMS message successfully;<br />
break;<br />
default:<br />
//sent SMS message failed<br />
break;<br />
}<br />
}<br />
};<br />
BroadcastReceiver deliverReceiver = new BroadcastReceiver(){<br />
@Override public void onReceive(Context c, Intent in) {<br />
//SMS delivered actions<br />
}<br />
};<br />
registerReceiver(sentReceiver, new IntentFilter(SENT_SMS_FLAG));<br />
registerReceiver(deliverReceiver, new IntentFilter(DELIVER_SMS_FLAG));<br />
ขนาดของข้อความ SMS ส่วนใหญ่จะจำกัดอยู่ที่ 140 ตัวอักษรต่อข้อความ โดยกระบวนการ<br />
ตรวจสอบเพื่อให้แน่ใจว่าข้อความที่จะส่งนั้นมีความยาวไม่เกินจากที่กำหนดไว้ เราจะใช้เมธอด<br />
divideMessage() เพื่อตัดข้อความในกรณีที่ข้อความมีขนาดยาวเกินกว่า 140 ตัวอักษร