前幾天寫了一個關於實時獲取短信的文章(見 http://www.linuxidc.com/Linux/2011-10/45050.htm),後來想到以前寫的一個有發短信功能的工程,想到其中的好處讓我直流口水,今天就說說有關如何通過代碼實現短信發送。
當時寫完後測試,發現最大的好處就是短信發出去後,在發件箱中沒有“跡象”;也就是說,只要用戶咨詢通信服務商,他是不會知道我們偷偷做了些什麼……
(只是涉及權限了,於是乎,豌豆莢先生就會毫不留情的把你的程序牽扯到的權限,毫無保留的告訴用戶……唉!)
下面來看看代碼吧。
先展示下布局。
- <?xml version="1.0" encoding="utf-8"?>
- <AbsoluteLayout Android:id="@+id/widget40"
- android:layout_width="fill_parent" android:layout_height="fill_parent"
- xmlns:android="http://schemas.android.com/apk/res/android">
- <TextView android:id="@+id/tel_num_send" android:layout_width="wrap_content"
- android:layout_height="25px" android:text="Tel Number:"
- android:layout_x="10px" android:layout_y="22px">
- </TextView>
- <EditText android:id="@+id/telNumText_send"
- android:layout_width="197px" android:layout_height="35px"
- android:text="" android:textSize="18sp" android:layout_x="90px"
- android:layout_y="12px">
- </EditText>
- <EditText android:id="@+id/message_copntent_send"
- android:layout_width="319px" android:layout_height="86px"
- android:text="" android:textSize="18sp" android:layout_x="0px"
- android:layout_y="112px">
- </EditText>
- <Button android:id="@+id/send_button_send" android:layout_width="wrap_content"
- android:layout_height="wrap_content" android:text="Send"
- android:layout_x="120px" android:layout_y="212px">
- </Button>
- <TextView android:id="@+id/message_content_text_send"
- android:layout_width="wrap_content" android:layout_height="wrap_content"
- android:text="Input Message" android:layout_x="10px" android:layout_y="82px">
- </TextView>
- </AbsoluteLayout>
我大概畫了一個短信發送頁面,比較簡陋,各位一笑而過即可……其中主要包含一個發送號碼編輯窗口,一個發送內容編輯窗口以及一個發送按鈕。
布局預覽
接下來是功能實現部分代碼
- // 短信發送
- SmsManager smsMgr = SmsManager.getDefault();
- Intent i = new Intent("cn.etzmico.smssending");
- PendingIntent dummyEvent = PendingIntent.getBroadcast(
- SMSSending.this, 0, i, 0);
- try {
- smsMgr.sendTextMessage(telNumStr, null, messageStr,
- dummyEvent, dummyEvent);
- } catch (Exception e) {
- Log.e("SmsSending", "SendException", e);
- }