小安:是啊,博士。这样太棒了,非常期待,让我们开始吧。
2.2 短信发送器
功能设计
前面我们实现了手机拨号器,下面我们实现另一个简单的应用——短信发送器。我们在 第一个文本框中输入电话号码,第二个文本框中输入要发送的短信内容,之后点击“发送短 信”按钮,就可以把输入的短信内容发给上面文本框中输入的这个号码了。其界面设计示意 图如下:
1.
1.
1.
1. 创建项目
创建项目时窗口内容如下图所示:
国士工作室 电话::::15711060468 Email:Email:Email:Email:[email protected] 博客::::
http://www.cnblogs.com/guoshiandroid/
版权所有,请保留 2. 编写 strings.xml:<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, SMSActivity!</string>
<string name="app_name">短信发送器</string>
<string name="mobile">请输入手机号</string>
<string name="content">请输入短信内容</string>
<string name="button">发送短信</string>
</resources>
3. 编写 main.xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
国士工作室 电话::::15711060468 Email:Email:Email:Email:[email protected] 博客::::
http://www.cnblogs.com/guoshiandroid/
版权所有,请保留import import import
import android.os.Bundle;
import import import
import android.telephony.SmsManager;
import import import
import android.view.View;
import import import
import android.widget.Button;
import import import
import android.widget.EditText;
import import import
import android.widget.Toast;
public public public
public classclassclassclass SMSActivity extendsextendsextendsextends Activity {
@Override public
publicpublicpublic voidvoidvoidvoid onCreate(Bundle savedInstanceState) { super
Button button = (Button)thisthisthisthis.findViewById(R.id.button);
//为按钮设置监听事件
button.setOnClickListener(newnewnewnew View.OnClickListener() {
@Override public
publicpublicpublic voidvoidvoidvoid onClick(View v) { //获取手机号码文本框
EditText mobileText =
(EditText)findViewById(R.id.mobile);
//获取短信内容文本框 EditText contentText =
(EditText)findViewById(R.id.content);
//获取手机号
String mobile = mobileText.getText().toString();
//获取短信内容
String content = contentText.getText().toString();
//获取系统默认的短信管理器,此处导包时应注意 //应导入android.telephony.SmsManager;
//若导入 android.telephony.gsm.SmsManager包,
//则SmsManger显示过时
SmsManager smsManager = SmsManager.getDefault();
List<String> texts = smsManager.divideMessage(content);
//迭代数组,逐条发送短信 for
forforfor(String text : texts){
//发送短信
smsManager.sendTextMessage(mobile, nullnullnullnull, text, nullnullnullnull, null
Toast.makeText(SMSActivity.thisthisthisthis, R.string.success, Toast.LENGTH_LONG).show();
� SmsManager smsManager = SmsManager.getDefault();
该行代码的作用是获取一个短信管理器SmsManger。使用该类需要导入系统jar包。
导包时应注意导入的包是否正确,在Eclipse中按下【Ctrl+Shift+O】快捷键可以 自动导入需要的jar包,但对该类导包时会出现如下选择界面。
国士工作室 电话::::15711060468 Email:Email:Email:Email:[email protected] 博客::::
http://www.cnblogs.com/guoshiandroid/
版权所有,请保留SmsManger的divideMessage方法的作用是将传入的短信内容进行拆分。由于每条 短信的字数会受到限制,因此我们在发送短信之前应将文本拆分,确保每条短信的字数 不超过最大限制。拆分后的字符串放入List之中。
� smsManager.sendTextMessage(mobile, null, text, null, null);
SmsManger的sendTextMessage方法的作用是发送短信。下面介绍其参数含义。
在Eclipse中可以通过如下方式查看方法的参数、返回值的类型及意义等信息。将鼠 标指向需要查看的方法,Eclipse就会自动的弹出如下的提示。
destinationAddress :要发送的目标手机号码 scAddress :短信中心的号码,可以置空 text:要发送的短信内容
sentIntent :当手机将短信发出后有两种状态用户可能会比较关心,就是短信是否已 经成功发出以及对方是否已经收到。当我们通过调用该方法发送短信 时,是通过手机硬件来调用手机运营商的网络来完成发送功能,运营商 会将发送的状态返回给手机,手机接到状态信号后会以意图的方式进行 广播,如果程序中注册了该广播接收者就可以接受该意图。该参数就是 用来接受短信是否发送成功的意图。如果不想获得,可以置空。
deliveryIntent: 与第四个参数类似,用来接收对方是否已经收到短信这个意图。如 果不想获得,可以置空。
� Toast.makeText(SMSActivity.this, R.string.success, Toast.LENGTH_LONG).show();
该行代码的作用是当消息发送之后,弹出一个提示信息,告诉用户已经发送过了。
makeText()方法是创建一个Toast通知,参数介绍:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sharpandroid.sms"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon"
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>
国士工作室 电话::::15711060468 Email:Email:Email:Email:[email protected] 博客::::
http://www.cnblogs.com/guoshiandroid/
版权所有,请保留 AVD——listen。运行程序。由于我们开启了两个 AVD,因此需要选择我们的目标 AVD,选择界面如下图。
我们双击 sharp 所在的列,或者选中之后点击【OK】,则开始将程序发送到 sharp 上面。
此时,sharp的界面如下图:
点击【发送短信】按钮,sharp的屏幕下方出现Toast提示,如下图。
我们再来观察listen模拟器,在其屏幕上方的“状态栏”出现有未读短信的提示,如下图。
点击桌面上的 图标,打开短信管理器,界面如下图。
国士工作室 电话::::15711060468 Email:Email:Email:Email:[email protected] 博客::::
http://www.cnblogs.com/guoshiandroid/
版权所有,请保留 点击未读短信,显示如下图。至此,短信发送器开发完成。