Android基础教程之----SMS简单发送短信程序(两个模拟器之间的通信)!

前面的范例,示范了如何通过程序拨打电话,在GSM移动通信系统的服务中,除了打电话外,另一个常用的功能,就是发短信.也因为如此,许多电信业者推出专属短信族的专用费率,由此可知短信功能对手机的重要性.

发送短信的关键程序是通过SmsManager对象的sendTextMessage()方法来完成,其中sendTextMessage()方法需传入五个值,依次是收件人地址(String),发送地址(String),发送服务(PendingIntent)与送达服务(PendingIntent),其中收件人与正文是不可为null的两个参数.

本例子通过两个模拟器,5554,5556互相通信,下面我将分5个步骤,讲一下发送短信程序是如何实现的.

Step 1:建立一个Android工程,我们命名为SMSDemo.

Step 2:设计一下程序的UI,也就是主界面main.xml,这里用AbsoluteLayout,有点丑见笑了!代码如下:

  
  
  
  
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <AbsoluteLayout 
  3.   android:layout_width="fill_parent" 
  4.   android:layout_height="fill_parent" 
  5.   xmlns:android="http://schemas.android.com/apk/res/android" 
  6.   > 
  7.   <TextView 
  8.     android:layout_width="wrap_content" 
  9.     android:layout_height="wrap_content" 
  10.     android:text="收件 人:" 
  11.     android:textSize="16sp" 
  12.     android:layout_x="0px" 
  13.     android:layout_y="12px" 
  14.   > 
  15.   </TextView> 
  16.   <EditText 
  17.     android:id="@+id/myEditText1" 
  18.     android:layout_width="fill_parent" 
  19.     android:layout_height="wrap_content" 
  20.     android:text="" 
  21.     android:textSize="18sp" 
  22.     android:layout_x="60px" 
  23.     android:layout_y="2px" 
  24.   > 
  25.   </EditText> 
  26.   <EditText 
  27.     android:id="@+id/myEditText2" 
  28.     android:layout_width="fill_parent" 
  29.     android:layout_height="223px" 
  30.     android:text="" 
  31.     android:textSize="18sp" 
  32.     android:layout_x="0px" 
  33.     android:layout_y="52px" 
  34.   > 
  35.   </EditText> 
  36.   <Button 
  37.     android:id="@+id/myButton1" 
  38.     android:layout_width="162px" 
  39.     android:layout_height="wrap_content" 
  40.     android:text="发送短信" 
  41.     android:layout_x="80px" 
  42.     android:layout_y="302px" 
  43.   > 
  44.   </Button> 
  45. </AbsoluteLayout> 
  46.  
  47.  
  48.  

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

 

  
  
  
  
  1. package com.android.test;  
  2.  
  3. import android.app.Activity;  
  4. import android.app.PendingIntent;  
  5. import android.content.Intent;  
  6. import android.os.Bundle;  
  7. import android.telephony.gsm.SmsManager;  
  8. import android.view.View;  
  9. import android.widget.Button;  
  10. import android.widget.EditText;  
  11. import android.widget.Toast;  
  12.  
  13. public class SMSDemo extends Activity {  
  14.      
  15.  private Button mButton1;  
  16.  private EditText mEditText1;  
  17.  private EditText mEditText2;  
  18.     public void onCreate(Bundle savedInstanceState) {  
  19.         super.onCreate(savedInstanceState);  
  20.         setContentView(R.layout.main);  
  21.           
  22.         //获取资源  
  23.         mEditText1 = (EditText)findViewById(R.id.myEditText1);  
  24.         mEditText2 = (EditText)findViewById(R.id.myEditText2);  
  25.         mButton1 = (Button)findViewById(R.id.myButton1);  
  26.         //发送短信的响应  
  27.         mButton1.setOnClickListener(new Button.OnClickListener(){  
  28.  
  29.    public void onClick(View v) {  
  30.     //获取发送地址和发送内容  
  31.     String messageAddress = mEditText1.getText().toString();  
  32.     String messageContent = mEditText2.getText().toString();  
  33.       
  34.     //构建一取得default instance的SmsManager对象  
  35.       
  36.     SmsManager smsManager = SmsManager.getDefault();  
  37.     //检查输入内容是否为空,这里为了简单就没有判断是否是号码,短信内容长度的限制也没有做  
  38.     if(messageAddress.trim().length()!=0 && messageContent.trim().length()!=0)  
  39.     {  
  40.      try{  
  41.       PendingIntent pintent = PendingIntent.getBroadcast(SMSDemo.this0new Intent(), 0);  
  42.       smsManager.sendTextMessage(messageAddress, null, messageContent, pintent, null);  
  43.         
  44.      }catch(Exception e)  
  45.      {  
  46.       e.printStackTrace();  
  47.      }  
  48.      //提示发送成功  
  49.      Toast.makeText(SMSDemo.this"发送成功", Toast.LENGTH_LONG).show();  
  50.     }  
  51.     else{  
  52.      Toast.makeText(SMSDemo.this"发送地址或者内容不能为空", Toast.LENGTH_SHORT).show();  
  53.     }  
  54.    }  
  55.            
  56.         });  
  57.     }  
  58. }  

Step 4:增加拨打电话权限AndroidManifest.xml代码如下:

  
  
  
  
  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
  3.       package="com.android.test" 
  4.       android:versionCode="1" 
  5.       android:versionName="1.0"> 
  6.     <application android:icon="@drawable/icon" android:label="@string/app_name"> 
  7.         <activity android:name=".SMSDemo" 
  8.                   android:label="@string/app_name"> 
  9.             <intent-filter> 
  10.                 <action android:name="android.intent.action.MAIN" /> 
  11.                 <category android:name="android.intent.category.LAUNCHER" /> 
  12.             </intent-filter> 
  13.         </activity> 
  14.  
  15.     </application> 
  16.     <uses-sdk android:minSdkVersion="3" /> 
  17.  <uses-permission android:name="android.permission.SEND_SMS"></uses-permission> 
  18. </manifest>   
  19.  

Step 5:run it!效果图如下,5554给5556发送了一条短信:

 

Android基础教程之----SMS简单发送短信程序(两个模拟器之间的通信)!_第1张图片

 

你可能感兴趣的:(android,通信,教程,sms,短信)