Android基礎教程之—-SMS簡單傳送簡訊程式(兩個模擬器之間的通訊)!

來源:互聯網
上載者:User

前面的範例,示範了如何通過程式撥打到電話,在GSM移動通訊系統的服務中,除了打電話外,另一個常用的功能,就是發簡訊.也因為如此,許多電信業者推出專屬簡訊族的專用費率,由此可知簡訊功能對手機的重要性.

 

傳送簡訊的關鍵程式是通過SmsManager對象的sendTextMessage()方法來完成,其中sendTextMessage()方法需傳入五個值,依次是收件者地址(String),發送地址(String),發送服務(PendingIntent)與送達服務(PendingIntent),其中收件者與本文是不可為null的兩個參數.

 

本例子通過兩個模擬器,5554,5556互相通訊,下面我將分5個步驟,講一下傳送簡訊程式是如何?的.

 

Step 1:建立一個Android工程,我們命名為SMSDemo.

 

Step 2:設計一下程式的UI,也就是主介面main.xml,這裡用AbsoluteLayout,有點醜見笑了!代碼如下:

 

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  xmlns:android="http://schemas.android.com/apk/res/android"
  >
  <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="收件 人:"
    android:textSize="16sp"
    android:layout_x="0px"
    android:layout_y="12px"
  >
  </TextView>
  <EditText
    android:id="@+id/myEditText1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text=""
    android:textSize="18sp"
    android:layout_x="60px"
    android:layout_y="2px"
  >
  </EditText>
  <EditText
    android:id="@+id/myEditText2"
    android:layout_width="fill_parent"
    android:layout_height="223px"
    android:text=""
    android:textSize="18sp"
    android:layout_x="0px"
    android:layout_y="52px"
  >
  </EditText>
  <Button
    android:id="@+id/myButton1"
    android:layout_width="162px"
    android:layout_height="wrap_content"
    android:text="傳送簡訊"
    android:layout_x="80px"
    android:layout_y="302px"
  >
  </Button>
</AbsoluteLayout>

Step 3:主控製程序SMSDemo.java如下:

package com.android.test;

import android.app.Activity;
import android.app.PendingIntent;
import android.content.Intent;

import android.os.Bundle;
import android.telephony.gsm.SmsManager;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class SMSDemo extends Activity {
  
 private Button mButton1;
 private EditText mEditText1;
 private EditText mEditText2;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        //擷取資源
        mEditText1 = (EditText)findViewById(R.id.myEditText1);
        mEditText2 = (EditText)findViewById(R.id.myEditText2);
        mButton1 = (Button)findViewById(R.id.myButton1);
        //傳送簡訊的響應
        mButton1.setOnClickListener(new Button.OnClickListener(){

   public void onClick(View v) {
    //擷取發送地址和發送內容
    String messageAddress = mEditText1.getText().toString();
    String messageContent = mEditText2.getText().toString();
    
    //構建一取得default instance的SmsManager對象
    
    SmsManager smsManager = SmsManager.getDefault();
    //檢查輸入內容是否為空白,這裡為了簡單就沒有判斷是否是號碼,簡訊內容長度的限制也沒有做
    if(messageAddress.trim().length()!=0 && messageContent.trim().length()!=0)
    {
     try{
      PendingIntent pintent = PendingIntent.getBroadcast(SMSDemo.this, 0, new Intent(), 0);
      smsManager.sendTextMessage(messageAddress, null, messageContent, pintent, null);
      
     }catch(Exception e)
     {
      e.printStackTrace();
     }
     //提示發送成功
     Toast.makeText(SMSDemo.this, "發送成功", Toast.LENGTH_LONG).show();
    }
    else{
     Toast.makeText(SMSDemo.this, "發送地址或者內容不可為空", Toast.LENGTH_SHORT).show();
    }
   }
         
        });
    }
}

 

Step 4:增加撥打到電話許可權AndroidManifest.xml代碼如下:

 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.android.test"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".SMSDemo"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
    <uses-sdk android:minSdkVersion="3" />
 <uses-permission android:name="android.permission.SEND_SMS"></uses-permission>
</manifest>

 

Step 5:run it!如下,55545556發送了一條簡訊:

 

 

 

Ok~今天到此結束,謝謝大家關注!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.