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.部署应用程序到模拟器上,输入电话号码和信息,可以达到我们想要的效果。

  

posted @ 2012-08-13 22:13  非著名程序师  阅读(1242)  评论(0编辑  收藏  举报