核心代码:
(1)SmsManager smsmanger = SmsManager.getDefault(); //获得默认的消息管理器
(2)ArrayList contents = smsmanger.divideMessage(content);//拆分长短信
(3)smsmanger.sendTextMessage(number, null, content, null, null); //发送短信
在AndroidManifest.xml中添加:
<uses-permission android:name="android.permission.SEND_SMS"/>
MainActivity.Java
package com.itheima.sms;
import java.util.ArrayList;
import android.support.v7.app.ActionBarActivity;
import android.telephony.SmsManager;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.os.Bundle;
public class MainActivity extends ActionBarActivity implements OnClickListener {
private EditText et_number;
private EditText et_content;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_number = (EditText)findViewById(R.id.number);
et_content = (EditText)findViewById(R.id.content);
Button bt_send = (Button)findViewById(R.id.send);
bt_send.setOnClickListener(this);
}
public void onClick(View v) {
switch(v.getId()){
case R.id.send:
String content = et_content.getText().toString().trim(); // 获取短信内容
String number = et_number.getText().toString().trim(); // 获取手机号码
if(TextUtils.isEmpty(content)||TextUtils.isEmpty(content)){ // 判断手机和短信的内容是否为空
Toast.makeText(this,"电话号码或内容不能为空", 1).show();
return;
}else{
SmsManager smsmanger = SmsManager.getDefault(); //获得默认的消息管理器
ArrayList<String> contents = smsmanger.divideMessage(content); // 把短信拆分成多个片段,防止短信内容过长,发送失败
for(String str:contents){ // 遍历短信内容
smsmanger.sendTextMessage(number, null, content, null, null); //发送短信
/* 第一个参数是信息的接收者
* 第二个参数是短信来自于哪里,目前不支持填写null就可以
* 第三个参数短信发送的内容
* 第四个参数是判断短信是否发送成功
* 第五个参数是对面接收到你发的短信的一个消息报告
*/
Toast.makeText(this,"发送完毕",Toast.LENGTH_SHORT).show(); //创建一个Toast
}
}
break;
}
}
}
界面布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.itheima.sms.MainActivity" >
<TextView
android:id="@+id/tv_input_number" //Ctrl+f 修改地址
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:text="@string/please_input_number" //Ctrl+1 字符串国际化
android:textSize="20px"/> //字体大小
<EditText
android:id="@+id/number" //Ctrl+f 修改地址
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/tv_input_number"
android:inputType="phone" />
<TextView
android:id="@+id/please_input_content" //Ctrl+f 修改地址
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/number"
android:layout_marginTop="35dp"
android:text="@string/please_input_content" //Ctrl+1 字符串国际化
android:textColor="#7D7DFF" //字体颜色 同html 支持透明度#667D7DFF
android:textSize="20px"/> //字体大小
<EditText
android:lines="5"
android:id="@+id/content" //Ctrl+f 修改地址
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/please_input_content"
android:inputType="textMultiLine" />
<Button
android:id="@+id/send" //Ctrl+f 修改地址
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@id/content"
android:layout_below="@id/content"
android:layout_marginTop="57dp"
android:textColor="#FF0000" //字体颜色 同html
android:text="@string/send" /> //Ctrl+1 字符串国际化
</RelativeLayout>