Android发送信息模拟系统
Android系统中已经有了我们熟悉并常用的发送信息功能,在程序中叫做已经有了此Activity,那么有时候我们需要在编写Android程序时调用此应用程序以实现通过我们的程序发送信息。具体实现方式如下:
1. 建立xml布局文件,最终效果如下:
2.在Activity中编写代码实现功能
import java.util.ArrayList; import android.os.Bundle; import android.widget.*; import android.app.Activity; import android.telephony.SmsManager; import android.view.Menu; import android.view.View; /* * @author:fanchangfa */ public class MainActivity extends Activity { private EditText number; private EditText content; private Button send; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /* * 初始化工作: * 文本框和按钮 * */ number = (EditText) this.findViewById(R.id.txt_number); content = (EditText) this.findViewById(R.id.txt_content); send = (Button) this.findViewById(R.id.btn_send); send.setOnClickListener(new sendListener()); } private final class sendListener implements View.OnClickListener{ public void onClick(View v) { //获取电话号码和短信内容 String sms_number = number.getText().toString(); String sms_content = content.getText().toString(); //获取发送信息的默认实例 SmsManager sms_manager = SmsManager.getDefault(); /*短信默认一条允许发送70个汉字,因此调用divideMessage方法对内容进行分割 * * */ ArrayList<String> txts = sms_manager.divideMessage(sms_content); //短信分割后执行此循环分批发送信息 for(String txt : txts) { /* * 第一个参数:要发送的手机号码 * 第二个参数:短信中心参数(null:系统默认的中心地址) * 第三个参数:短信内容 * 第四个参数:回执状态(是否发送成功) * 第五个参数:可以得到对方是否收到信息状态 * * 第四、五个参数通过移动网络返回的电信号获得 * 可以采用异步方式处理 * 需要用到只是:广播接受者 * */ sms_manager.sendTextMessage(sms_number, null, txt, null, null); }
//在此没有判断是否发送成功,可以通过广播接受者,以及更进一步的输入等判断,可自己进一步实现。 Toast.makeText(MainActivity.this, "发送成功", Toast.LENGTH_SHORT); } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } }
3. 和前一篇拨打电话一样,需要加入发送信息的权限才可以执行此功能,在AndroidMainfest.xml文件中加入如下权限:
<uses-permission android:name="android.permission.SEND_SMS" />
4.部署应用程序到模拟器上,输入电话号码和信息,可以达到我们想要的效果。