<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">主原理: 调用android系统自带的SMS管理器发送短信。</span>
开发过程:
1.在string.xml定义界面文字描述:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">短信发送器</string>
<string name="number">请输入手机号</string>
<string name="content">请输入短信内容</string>
<string name="button">发送</string>
<string name="success">发送完成</string>
</resources>
2.在界面视图中使用线性布局,完成发送短信界面的绘画
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/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/content"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minLines="3"
android:id="@+id/content"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button"
android:id="@+id/button"
/>
</LinearLayout>
numberText = (EditText)this.findViewById(R.id.number);
contentText = (EditText)this.findViewById(R.id.content);
Button button = (Button)this.findViewById(R.id.button);
button.setOnClickListener(new ButtonClickListener());// 自定义一个监听器 <span style="font-family: Arial, Helvetica, sans-serif;">ButtonClickListener</span>
4.ButtonClickListener 监听器:
@Override
public void onClick(View view) {
String number =numberText.getText().toString();
String content = contentText.getText().toString();
SmsManager manager = SmsManager.getDefault();//获取默认的短信管理器
ArrayList<String> texts = manager.divideMessage(content);//拆分短信(超过字数限制,自动拆分)
for(String text:texts){
/**
* 参数说明
* destinationAddress:收信人的手机号码
* scAddress:发信人的手机号码
* text:发送信息的内容
* sentIntent:发送是否成功的回执,用于监听短信是否发送成功。
* DeliveryIntent:接收是否成功的回执,用于监听短信对方是否接收成功。
*/
manager.sendTextMessage(number, null, text, null, null);
Toast.makeText(MainActivity.this, string.success, Toast.LENGTH_SHORT).show();
}
}
package com.lonffy.sms;
import java.util.ArrayList;
import com.lonffy.sms.R.string;
import android.os.Bundle;
import android.app.Activity;
import android.telephony.SmsManager;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private EditText numberText;
private EditText contentText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
numberText = (EditText)this.findViewById(R.id.number);
contentText = (EditText)this.findViewById(R.id.content);
Button button = (Button)this.findViewById(R.id.button);
button.setOnClickListener(new ButtonClickListener());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
private final class ButtonClickListener implements View.OnClickListener{
@Override
public void onClick(View view) {
String number =numberText.getText().toString();
String content = contentText.getText().toString();
SmsManager manager = SmsManager.getDefault();//获取默认的短信管理器
ArrayList<String> texts = manager.divideMessage(content);//拆分短信(超过字数限制,自动拆分)
for(String text:texts){
/**
* 参数说明
* destinationAddress:收信人的手机号码
* scAddress:发信人的手机号码
* text:发送信息的内容
* sentIntent:发送是否成功的回执,用于监听短信是否发送成功。
* DeliveryIntent:接收是否成功的回执,用于监听短信对方是否接收成功。
*/
manager.sendTextMessage(number, null, text, null, null);
Toast.makeText(MainActivity.this, string.success, Toast.LENGTH_SHORT).show();
}
}
}
}
6.最后授权:
<uses-permission android:name="android.permission.SEND_SMS"/>
最后的软件界面如图: