开发环境:

   Win XP + eclipse-jee-helios(版本号3.6) + ADT(版本10.0.1) + Android SDK(版本10);

模拟器及真机测试环境:Android2.2


软件的界面如下:

                                       图1

   1.应用的布局的实现

在sms->res->values中string.xml中声明需要的字符串,实现的代码如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, MainActivity!</string>
    <string name="app_name">×××</string>
    <string name="number">请输入手机号码</string>
    <string name="content">请输入短信内容</string>
    <string name="button">发送短信</string>
</resources>

  2.在sms->res->layout中的main.xml中实现图1的布局(垂直线性布局),实现的代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/number"
    />
                                                                                                                                                                                                                                                                                                                      
    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/number"
    />
                                                                                                                                                                                                                                                                                                                      
    <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/content"
    />
    <EditText
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:minLines="3"
        android:id="@+id/content"
    />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button"
        android:id="@+id/button"
    />
</LinearLayout>

   3.处理按钮的点击事件,根具控件的id找到两个文本输入框和发送按钮,监听按钮的点击事件,发送信息按钮的功能的实现。

  • 在MainActivity类中声明全局变量

private EditText numberEditText;
private EditText contentEditText;
  • 在onCreate()方法中添加如下代码:

numberEditText = (EditText)this.findViewById(R.id.number);
contentEditText = (EditText)this.findViewById(R.id.content);
Button button = (Button)this.findViewById(R.id.button);
                                                                                                                                               
button.setOnClickListener(new ButtonClickListener());

ButtonClickListener()方法中添加如下代码:

private final class ButtonClickListener implements View.OnClickListener{
        @SuppressWarnings("deprecation")
        @Override
        public void onClick(View v) {
            String number = numberEditText.getText().toString();
            String content = contentEditText.getText().toString();
            SmsManager manager = SmsManager.getDefault();
            ArrayList<String> texts = manager.divideMessage(content);
            for(String text:texts){
                manager.sendTextMessage(
                        number, null, text, null, null);
            }
            Toast.makeText(
                getApplication(),//context上下文对象
                R.string.success,
                Toast.LENGTH_LONG).show();
   }
}
注意:构建Toast对象之后,必须通过show()方法来显示

4.在AndroidManifest.xml中出示发送短信的权限。

<uses-permission android:name="android.permission.SEND_SMS"/>

程序运行的结果如下:

注意:在模拟器上发送中文时,会出现乱码的问题,但是在实际的手机上是不会出现这种情况的。