简单介绍下Android中如何发送短信
这里我们用一个模拟器向另一个模拟器发送短信
代码:
package com.th;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.EditText;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
//单击发送按钮时调用的函数
public void send(View v) {
// 获取用户输入的号码和内容
EditText et_phone = (EditText) findViewById(R.id.et_phone);
EditText et_content = (EditText) findViewById(R.id.et_content);
String phone = et_phone.getText().toString();
String content = et_content.getText().toString();
//1.获取短信管理器
SmsManager smsManager = SmsManager.getDefault();
//2.切割短信,一条短信太长的话无法发送
ArrayList<String> sms = smsManager.divideMessage(content);
//3.for 循环将集合中的所有短信发送出去
for (String str : sms) {
smsManager.sendTextMessage(phone, null, str, null, null);
}
}
}
布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<!-- 发送人号码,只接受数字和一些字符的输入 -->
<EditText
android:id="@+id/et_phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入对方号码"
android:inputType="phone">
<requestFocus />
</EditText>
<!-- 输入短信编辑框,行高为5,内容从顶部开始显示 -->
<EditText
android:id="@+id/et_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入短信内容"
android:lines="5"
android:gravity="top"
/>
<!-- 发送按钮,点击时调用 MainActivity 中的 send 函数 -->
<Button
android:id="@+id/btnSend"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="send"
android:text="发送" />
</LinearLayout>