您的位置:首页 > 移动开发 > Android开发

android实现短信发送功能

2013-04-01 21:08 651 查看
今天学的是短信发送功能。

首先是应用的界面:

界面的实现如下:

activity_sms.xml文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
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/input_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/context" />

<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minLines="3"
android:id="@+id/context"
/>

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/send"
android:id="@+id/bt_send"
/>

</LinearLayout>


string.xml文件
<resources>

<string name="app_name">短信发送器</string>
<string name="menu_settings">Settings</string>
<string name="title_activity_sms">短信发送器</string>
<string name="input_number">请输入手机号码</string>
<string name="context">请输入短信内容</string>
<string name="send">发送</string>

</resources>

接下来就是按钮功能的实现
package com.example.sms;

import java.util.ArrayList;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.telephony.gsm.SmsManager;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class SmsActivity extends Activity {

private Button bt_send = null;
private EditText et_number = null;
private EditText et_context = null;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sms);

bt_send = (Button) findViewById(R.id.bt_send);
et_number = (EditText) findViewById(R.id.number);
et_context = (EditText) findViewById(R.id.context);

bt_send.setOnClickListener(new buttonClickListener());
}

private final class buttonClickListener implements View.OnClickListener
{
public void onClick(View v) {
String str_number = et_number.getText().toString();
String str_context = et_context.getText().toString();

SmsManager manager = SmsManager.getDefault();
//由于短信的内容一般是有字数限制的,所以要调用divideMessage方法将超过字数的短信分成几条发送出去
//而divideMessage方法的返回类型为ArrayList类型,所以可以保存到ArrayList中
ArrayList<String> texts = manager.divideMessage(str_context);
for(String text:texts)
{
//第一个参数是要发送短信的目标地址,就是对方的号码。
//第二个参数为发送短信的中心地址,这里填null就可以。
//第三个参数为短信的内容
//第四个参数为发送短信的状态,是否发送成功
//第五个参数为对方是否接受到短信
manager.sendTextMessage(str_number, null, text, null, null);
}

//第一个参数为上下文对象
//第二个参数为显示的信息
//第三个参数为显示的时间,可以用常量来控制 LENGTH_LONG显示的时间长一点。LENGTH_SHORT显示的时间短一点
Toast.makeText(getApplicationContext(), "发送成功", Toast.LENGTH_LONG).show();

//也可以用下面的代码。由于Activity是继承自context,所以第一个参数也可以用SmsActivity
//Toast.makeText(SmsActivity.this, "发送成功", Toast.LENGTH_LONG).show();
}

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_sms, menu);
return true;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: