短信发送器
功能:用户输入号码和短信内容,点击发送按钮,调用短信api把短信发送给指定号码
备注:发送短信的API,我们是可以直接访问的
我们有两种方式进行发送短信:
a.通过动作 Intent.ACTION_CALL
b.调用系统API
|
1. 定义布局
-
输入框的提示
android:hint="请输入号码"
2. 完成点击事件
- 先给Button组件设置onClick属性
-
onClick="send"
- 在Activity中定义此方法
-
public void send(View v){}
3. 获取到用户输入的号码和内容
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();
4. 调用发送短信的api
//调用发送短信的api
SmsManager sm = SmsManager.getDefault();
//发送短信
sm.sendTextMessage(phone, null, content, null, null);
-
添加权限
<uses-permission android:name="android.permission.SEND_SMS"/>
-
如果短信过长,需要拆分
List<String> smss = sm.divideMessage(content);
短信发送器
import java.util.ArrayList;
import android.os.Bundle;
import android.app.Activity;
import android.telephony.SmsManager;
import android.view.Menu;
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.activity_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 sm = SmsManager.getDefault();
//2.切割短信,把长短信分成若干个小短信
ArrayList<String> smss = sm.divideMessage(content);
//3.for循环把集合中所有短信全部发出去
for (String string : smss) {
sm.sendTextMessage(phone, null, string, null, null);
}
}
}