此应用是一个能够调用系统的SmsManager类的两个方法实现的
文件清单:
1.SmsActivity.java
2.AndroidManifest.xml
3.smslayout.xml
4.string.xml
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1.SmsActivity.java
--------------------------------------------------------------------------------------
package com.hisoft.activity;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class SmsActivity extends Activity {
private Button send;
private EditText phone;
private EditText content;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.smslayout);
initComponent();
}
public void initComponent() {
phone = (EditText) this.findViewById(R.id.edt_num);
content = (EditText) this.findViewById(R.id.content);
send = (Button) this.findViewById(R.id.button);
send.setOnClickListener(new ButtonOnclickListener());
}
private final class ButtonOnclickListener implements View.OnClickListener {
@Override
public void onClick(View v) {
String message = content.getText().toString();
String number = phone.getText().toString();
SmsManager manager = SmsManager.getDefault();
ArrayList<String> messages = manager.divideMessage(message);
/*
* 由于短信的长度是由国际组织定义的,汉字70个 所以在发送之前必须判断其长度,如果超出定义长度则将短信信息拆分
*/
for (String msg : messages) {// 采用增强for循环迭代短信,分条发送
// manager.sendTextMessage(destinationAddress, scAddress, text,
// sentIntent, deliveryIntent)
/**
* destinationAddress:要发送的电话号码 scAddress :短信中心的地址 text :短信内容
* sentIntent:本机接收是否发送成功的状态的Intent ,如不需要此功能则填写null
* deliveryIntent :本机接收是否对方接收到短信的状态的Intent,如不需要此功能则填写null
*/
manager.sendTextMessage(number, null, msg, null, null);
}
/**
* android 中的通知有三种(参见api 中 developer | Ntification )
* A Toast Notification, for brief messages that come from the background.
* A Status Bar Notification, for persistent reminders that come from the background and request the user's response.
*
* A Dialog Notification, for Activity-related notifications.
* status bar Notification :一般用于服务,广播接收者
* Dialog Notification:较为重要的信息
* Toast :用户体验最好
*/
Toast.makeText(SmsActivity.this, R.string.succes, Toast.LENGTH_SHORT).show();
//SmsActivity.this == getApplicationContent
}
}
}
2.AndroidManifest.xml
--------------------------------------------------------------------------------------<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.hisoft.activity"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.SEND_SMS"/>
<!--android.permisson.SEND_SMS 这个权限是错误 permisson 不是 permision 哎 一个笔误!,叫我调了好久,所以最好每次书写一些常量时,最好copy && 权限的注册注册在application的前面-->
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".SmsActivity"
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>
</manifest>
3.smslayout.xml
--------------------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/promit" />
<EditText
android:id="@+id/edt_num"<!--对于代码中要用到的控件必须设置ID 以供查找调用-->
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/mobile"/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/content"/>
<EditText
android:id="@+id/content"
android:layout_width="fill_parent"
android:layout_height="350dp"
android:hint="@string/content" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button"/>
</LinearLayout>
4.string.xml
--------------------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, SmsActivity!</string>
<string name="app_name">短信发送器</string>
<string name="promit">短信发送至</string>
<string name="mobile">电话号码</string>
<string name="content">短信内容</string>
<string name="button">发送</string>
<string name="succes">发送成功!</string>
</resources>