• 沒有找到結果。

短信发送器

在文檔中 《大话企业级 (頁 124-135)

小安:是啊,博士。这样太棒了,非常期待,让我们开始吧。

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/

版权所有,请保留 点击未读短信,显示如下图。

至此,短信发送器开发完成。

在文檔中 《大话企业级 (頁 124-135)