基本信息如下:
Project name:SendMessage BuildTarget:Android2.1 Application name:短信发送 Package name:my.android.sms Create Activity:SendMessage Min SDK Version:7
Eclipse系统会生成以下目录架构的源码和配置文件
源码目录架构: │ AndroidManifest.xml ├─libs ├─res │ ├─drawable-hdpi │ │ icon.png │ │ │ ├─drawable-ldpi │ │ icon.png │ │ │ ├─drawable-mdpi │ │ icon.png │ │ │ ├─layout │ │ main.xml │ │ │ └─values │ strings.xml │ └─src └─my └─android └─sms SendMessage.java
二、编辑工程相关文件:
主要涉及4个文件,分别是
res\values\strings.xml
res\layout\main.xml
src\my\android\sms\SendMessage.java
AndriodManifest.xml
具体修改内容如下:
1.编辑strings.xml文件内容为:
< xml version="1.0" encoding="utf-8" > 请输入手机号码: 发送短信 请输入信息内容: 发送
2.编辑main.xml文件内容为:
< xml version="1.0" encoding="utf-8" > android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> android:layout_height="wrap_content" android:text="@string/hello" /> android:layout_height="wrap_content" android:id="@+id/mobile" /> android:layout_height="wrap_content" android:text="@string/content" /> android:layout_height="wrap_content" android:minLines="3" android:id="@+id/message" /> android:layout_height="wrap_content" android:text="@string/send" android:id="@+id/send"/>
注意,我们在电话号码输入框和拨打电话按钮中添加了android:id属性。如电话号码输入框的android:id=”@+id/mobile”,@代码R.java,+id代码添加id静态内部类,mobile代表向id类中添加一个常量成员。ADT将自动为我们生成常量值。 android:minLines设置信息内容编辑框的最小行数。
3.编辑SendMessage.java内容:
package my.android.sms;
import java.util.List; import android.app.Activity; import android.os.Bundle; import android.telephony.SmsManager; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText;
public class SendMessage extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 根据ID获取按钮 Button button = (Button) this.findViewById(R.id.send); // 注册按钮被单击事件 button.setOnClickListener( new OnClickListener() {
@Override public void onClick(View v) { // 根据ID获取手机号码编辑框 EditText mobileText = (EditText) findViewById(R.id.mobile); // 获取手机号码 String mobile = mobileText.getText().toString(); // 根据ID获取信息内容编辑框 EditText messageText = (EditText) findViewById(R.id.message); // 获取信息内容 String message = messageText.getText().toString(); // 移动运营商允许每次发送的字节数据有限,我们可以使用Android给我们提供 的短信工具。 if (message != null) { SmsManager sms = SmsManager.getDefault(); // 如果短信没有超过限制长度,则返回一个长度的List。 List texts = sms.divideMessage(message); for (String text : texts) { sms.sendTextMessage(mobile, null, text, null, null); } }//fi }//public }); }//public }//public
----------------------------------------------------
附:关键函数sendTextMessage参数说明: sms.sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent): destinationAddress:接收方的手机号码 scAddress:发送方的手机号码 text:信息内容 sentIntent:发送是否成功的回执,以后会详细介绍。 DeliveryIntent:接收是否成功的回执,以后会详细介绍。
4.编辑AndroidManifest.xml内容: < xml version="1.0" encoding="utf-8" > package="my.android.sms" android:versionCode="1" android:versionName="1.0">
注册发送短信的权限,如果没有注册这个,将使用不了系统的发送短信功能。以后在我们的应用程序开发中,有使用到系统功能的必须在这个文件中进行注册。我们可以查看Android的帮助手册都有哪些功能。(.../android-sdk-w